21
다음 예제를보십시오.deserialization 중에 생성자를 찾을 수 없습니까?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
namespace SerializationTest
{
[Serializable]
class Foo : Dictionary<int, string>
{
}
class Program
{
static void Main(string[] args)
{
Foo foo = new Foo();
foo[1] = "Left";
foo[2] = "Right";
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
formatter.Serialize(stream, foo);
stream.Seek(0, SeekOrigin.Begin);
formatter.Deserialize(stream);
}
}
}
마지막 행에서는 형식화 프로그램이 Foo에 대한 생성자를 찾을 수 없기 때문에 SerializationException이 발생합니다. 왜 그런가요?
Dictionary는 모두 ISerializable을 구현하기 때문에 ... –
SerializationInfo 및 StreamingContext 클래스에 대한 참고 사항, 은 ** System.Runtime.Serialization ** 네임 스페이스에 있습니다. 전체 경로는 ** System.Runtime.Serialization.SerializationInfo **입니다. – Wappenull