일부 이스케이프 문자 (\ 0)로 문자열을 직렬화하려고합니다. 하지만 deserialise 할 때 예외가 발생합니다.XML 직렬화가 SOAP 및 이진 serialzation을 통해 제안되는 이유는 무엇입니까?
//XML serialization
private static void M1()
{
string str = "\0AC";
StringWriter sw = new StringWriter();
XmlSerializer serializer = new XmlSerializer(typeof(String));
serializer.Serialize(sw, str);
System.Console.WriteLine("String encoded to XML = \n{0} \n", sw.ToString());
StringReader sr = new StringReader(sw.ToString());
String s2 = (String)serializer.Deserialize(sr);
System.Console.WriteLine("String decoded from XML = \n {0}", s2);
}
//Using Binary serialization
void BinaryFormat1()
{
IFormatter bf = new BinaryFormatter();
string str = "\0MyName";
FileStream fs = new FileStream("SerilizedString.Data", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
bf.Serialize(fs, str);
fs.Close();
fs = new FileStream("SerilizedString.Data", FileMode.Open, FileAccess.Read, FileShare.None);
string data = (string)bf.Deserialize(fs);
fs.Close();
Console.WriteLine("data : " + data.ToString());
}
@ starz26 - 어떤 종류의 예외인가? – CoderHawk
질문 설명과 관련하여 주체는 무엇입니까? – Gopi
다른 예외로 인해 다른 직렬화 유형을 사용하려고합니다. 바이너리를 사용하는 것이 좋습니다? – myWorld