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

asp.net – 如何使用Web服务返回接口或“复杂”值?

发布时间:2020-12-16 09:33:39 所属栏目:asp.Net 来源:网络整理
导读:我有一个返回复杂值的web服务(这是一棵树) public class DocumentTreeNode{ public MyDocument Data { get; set;} private LinkedListDocumentTreeNode _children; public IEnumerableDocumentTreeNode Children { get { return _children.AsEnumerable(); }
我有一个返回复杂值的web服务(这是一棵树)

public class DocumentTreeNode
{
    public MyDocument Data
    { get; set;}

    private LinkedList<DocumentTreeNode> _children;

    public IEnumerable<DocumentTreeNode> Children
    {
        get
        {
            return _children.AsEnumerable();
        }
    }

    (...)
}

不幸的是,当我调用webservice时,它会返回

<?xml version="1.0" encoding="utf-8"?>
<DocumentTreeNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns="http://tempuri.org/" />

我已经双重检查了,我应该返回的对象不是空的.

我猜这意味着ASP.Net无法正确序列化我的类(由于IEnumerable?).我打算使用Xml序列化并让我的服务返回一个XmlDocument,但我不认为这是最好的方法.

传递此对象的最简单方法是什么(使用最少的工作)?

解决方法

序列化程序将跳过返回接口的属性.它需要一种具体类型,否则在没有附加类型元数据的情况下不可能进行重新水合,这不是OOTB序列化的一部分.

(编辑:李大同)

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

    推荐文章
      热点阅读