我有一个使用Entity Framework 4.0的ASP.NET Web服务。
当我在本地运行WebService上的一个方法时,它抛出以下异常:
System.InvalidOperationException:生成错误时出错 XML文档。 ---> System.InvalidOperationException:成为XML 可序列化,从IEnumerable继承的类型必须具有 在他们的所有级别实现Add(System.Object) 继承层次结构。 System.Data.Objects.ObjectQuery`1 [testGoogleEarth.Model.Marker, testGoogleEarth,Version = 1.0.0.0,Culture = neutral, PublicKeyToken = null]]没有实现Add(System.Object)。在 System.Xml.Serialization.TypeScope.GetEnumeratorElementType(类型类型, TYPEFLAGS&安培;旗帜) System.Xml.Serialization.TypeScope.ImportTypeDesc(类型类型, MemberInfo memberInfo,Boolean directReference)at System.Xml.Serialization.TypeScope.GetTypeDesc(Type type,MemberInfo source,Boolean directReference,Boolean throwOnError)at System.Xml.Serialization.XmlSerializationWriter.CreateUnknownTypeException(类型 输入) System.Xml.Serialization.XmlSerializationWriter.WriteTypedPrimitive(字符串 name,String ns,Object o,Boolean xsiType)at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1_Object(字符串 n,String ns,Object o,Boolean isNullable,Boolean needType)at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write7_JsonResult(字符串 n,String ns,JsonResult o,Boolean isNullable,Boolean needType)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write9_JsonResult(对象 o)在System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter,Object o,XmlSerializerNamespaces名称空间,String encodingStyle,String id)---内部异常堆栈跟踪的结束 ---在System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter,Object o,XmlSerializerNamespaces namespaces,String encodingStyle,String id)at System.Xml.Serialization.XmlSerializer.Serialize(的TextWriter textWriter,Object o,XmlSerializerNamespaces namespaces)at System.Web.Services.Protocols.XmlReturnWriter.Write(HttpResponse对象 响应,Stream outputStream,Object returnValue)at System.Web.Services.Protocols.WebServiceHandler.WriteReturns(对象[] returnValues)at System.Web.Services.Protocols.WebServiceHandler.Invoke()
我在Windows Server 2008上运行此示例。已安装.NET 4.0。
有什么想法吗?
由于
答案 0 :(得分:0)
您正在使用XMLSerializer在线路上序列化WCF请求时出现问题。对象图中的任何IEnumerable类都应该有一个公共add方法。在这里查看一些细节 http://www.hanselman.com/blog/YouMustImplementTheAddSystemObjectMethodOnMyClassBecauseItInheritsFromIEnumerable.aspx