Web 服务对象中的循环引用
是否有可能返回一个引用恰好是循环的对象,就像在具有可以访问其父级的子级列表的父级中一样。使用 c# webservices 促进此类事情的最佳方法是什么?
Is it possible to return an object whos references happen to be circular, as in a parent with a list of children who have access to their parent. What is the best way to facilitate this kind of thing using c# webservices.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Web 服务没有任何限制可以阻止这种情况,但是 .Net 中的默认序列化程序不知道如何序列化循环引用。您需要编写自己的序列化/反序列化代码并将其插入到 WCF 中。
您可以在此处找到使用 WCF 执行此操作的示例:http://code.msdn .microsoft.com/WCF-Custom-Serialization-43b3ee7a
There is no limitation of web services that prevent this, however the default serializer in .Net doesn't know how to serialize circular references. You'd need to write you're own serialization/deserialization code and plug it into WCF.
You can find a sample of doing this with WCF here: http://code.msdn.microsoft.com/WCF-Custom-Serialization-43b3ee7a
如果您使用的是 WCF,.net 3.5 中添加的新功能允许您无需额外代码即可执行此操作,您可以通过将 IsReference 添加到数据契约属性来序列化循环引用。请参阅 http://msdn.microsoft.com/ en-us/library/system.runtime.serialization.datacontractattribute.isreference.aspx
If you are using WCF, a new feature added in .net 3.5 allows you to do this with no extra code, you can serialize circular references by adding IsReference to your datacontract attribute. See http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.isreference.aspx