加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Web服务中的循环引用

发布时间:2020-12-16 03:26:33 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试解决Web服务中的循环引用.解决方案构建正常并且一些操作是可调用的,但是使用引用类型的操作会给出循环引用异常(下面). System.InvalidOperationException: There was an error generating the XML document. --- System.InvalidOperationException
我正在尝试解决Web服务中的循环引用.解决方案构建正常并且一些操作是可调用的,但是使用引用类型的操作会给出循环引用异常(下面).

System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: A circular reference was detected while serializing an object of type MyCoreAssembly.MyType <-------- this is the referenced type
   at System.Xml.Serialization.XmlSerializationWriter.WriteStartElement(String name,String ns,Object o,Boolean writePrefixed,XmlSerializerNamespaces xmlns)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write21_VRD(String n,VRD o,Boolean isNullable,Boolean needType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write21_VRD(String n,Boolean needType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write31_Hereditament(String n,Hereditament o,Boolean needType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write32_HereditamentVrd(String n,HereditamentVrd o,Boolean needType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write33_VRDResponse(String n,VRDResponse o,Boolean needType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write43_VRDResponse(Object o)
   at Microsoft.Xml.Serialization.GeneratedAssembly.VRDResponseSerializer.Serialize(Object objectToSerialize,XmlSerializationWriter writer)  <------- this is my type
   at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter,XmlSerializerNamespaces namespaces,String encodingStyle,String id)
   --- End of inner exception stack trace ---
   at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter,String id)
   at System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter,XmlSerializerNamespaces namespaces)
   at System.Web.Services.Protocols.XmlReturnWriter.Write(HttpResponse response,Stream outputStream,Object returnValue)
   at System.Web.Services.Protocols.HttpServerProtocol.WriteReturns(Object[] returnValues,Stream outputStream)
   at System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues)
   at System.Web.Services.Protocols.WebServiceHandler.Invoke()

该架构看起来大致如下:

Core layer <------ Data Layer <----- Logic Layer <---------- Web service
                     /--------------------/ <-------------------|
                                            /--------------------|

每个层都是一个单独的程序集,Web服务引用所有三个程序集.我附加了一个调试器,但它没有破坏.它看起来像内部失败但我不知道一切都在哪里构建.我该如何调试呢?

解决方法

您的循环引用不在项目文件中,而是在您尝试通过Web服务发送的对象中.其中一个对象具有对自身的引用或引用该对象的对象.

错误消息告诉您查看您的类型:MyCoreAssembly.MyType

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读