我遇到了SOAP序列化的问题,找到答案会很好。这里是一个非常简化的例子:复杂类型的SOAP序列化时发生InvalidOperationException异常
public void Test()
{
StringBuilder sb = new StringBuilder();
StringWriter writer = new StringWriter(sb);
SoapReflectionImporter importer = new SoapReflectionImporter();
XmlTypeMapping map = importer.ImportTypeMapping(typeof(A));
XmlSerializer serializer = new XmlSerializer(map);
serializer.Serialize(writer, new A());
}
[Serializable]
public class A
{
public A()
{
BB = new B();
}
public int a;
public B BB;
}
[Serializable]
public class B
{
public int A1 { get; set; }
public int A2 { get; set; }
}
如果我跑法测试(),然后我得到以下异常:System.InvalidOperationException: Token StartElement in state Epilog would result in an invalid XML document.
希望得到任何帮助。
谢谢,这有助于。但是我还有另外一个问题,这次是去分解。 如果我重写类A中的方法GetHashCode()并尝试访问属性BB,则在反序列化期间会出现NullReferenceException。不知何故属性BB等于0,但它不应该。 – 2009-06-18 09:58:01
你可以发布你的反序列化代码吗?我会看看 – 2009-06-18 12:09:55