바이트 배열을 개체로 변환하려고합니다. 모든 가능한 문제를 제거하기 위해 간단하게 원래 코드에서 깨는 함수를 호출하고 동일한 오류가 발생하는 간단한 Windows 양식을 만들었습니다. 무슨 일이 벌어지고있는가에 대한 생각?직렬화 예외 : 구문 분석을 완료하기 전에 발생한 스트림의 끝 - C#
private void button1_Click(object sender, EventArgs e)
{
byte[] myArray = new byte[] {1, 2, 3, 4, 5, 6, 7};
object myObject = ByteArrayToObject(myArray);
if(myObject != null)
{
button1.Text = "good";
}
}
private object ByteArrayToObject(byte[] arrBytes)
{
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter binForm = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
MemoryStream memStream = new MemoryStream(arrBytes);
memStream.Position = 0;
return binForm.Deserialize(memStream);
}
그리고 그 특정 바이트 배열이 유효한 객체를 만드는 이유는 무엇입니까? –
바이트 배열이 유효한 객체를 만들 수있는 자격을 얻거나 실격 처리하는 것은 무엇입니까? –
이진 직렬화는 단순히 바이트를 직렬화하는 것 이상을 수행합니다. * type safe *이며 객체를 설명하는 스트림에 메타 데이터를 추가합니다. –