我们有一个只在.NET 4.5中发生的序列化问题 - 相同的代码在.NET 4中工作正常.我们尝试使用几个字段序列化一个继承的类型,基类和继承类都标记为SerializableAttribute.我们在Web服务的客户端获得一个异常,说服务器中有一个MethodAccessException,服务器本身不会抛出任何异常,这似乎是客户端序列化过程中的一个问题.重要的是要注意我们在.NET 4-而不是.4.5中进行编译
更新:实现ISerailize并忽略"Value"属性后,程序运行正常,但这意味着我们不得不放弃序列化此字段.
非常感激任何的帮助.谢谢,奥梅尔
例外细节:
System.Web.Services.Protocols.SoapException occurred
HResult=-2146233087
Message=System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.InvalidOperationException: There was an error generating the XML document. ---> System.MethodAccessException: Attempt by method 'Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write88_DeviceSiteTypeInfo(System.String, System.String, IOSIGHT.Info.DeviceSiteTypeInfo, Boolean, Boolean)' to access method 'IOSIGHT.Info.DeviceSiteTypeInfo.get_Value()' failed.
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write88_DeviceSiteTypeInfo(String n, String ns, DeviceSiteTypeInfo o, Boolean isNullable, Boolean needType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1310_GetSiteTypesResponse(Object[] p)
at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer2089.Serialize(Object objectToSerialize, XmlSerializationWriter writer)
at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) …Run Code Online (Sandbox Code Playgroud)