Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF REST Xml响应类型_Xml_Wcf_Rest_Xml Serialization - Fatal编程技术网

WCF REST Xml响应类型

WCF REST Xml响应类型,xml,wcf,rest,xml-serialization,Xml,Wcf,Rest,Xml Serialization,我有一个WCF REST服务,它公开了几十个对象,并基于url格式通过3种不同的方法路由调用。例如: Protected Function [get](ByVal objType As String, ByVal id As String, ByVal propertyList As String, ByVal token As String) As Object 这些方法中的每一个都返回一个对象或BaseObj(所有返回的类型都从中继承)。不过,最终的问题是,当我查看XML时,会得到一个类似

我有一个WCF REST服务,它公开了几十个对象,并基于url格式通过3种不同的方法路由调用。例如:

Protected Function [get](ByVal objType As String, ByVal id As String, ByVal propertyList As String, ByVal token As String) As Object
这些方法中的每一个都返回一个对象或BaseObj(所有返回的类型都从中继承)。不过,最终的问题是,当我查看XML时,会得到一个类似以下内容的包装器:

<ArrayOfBaseObj xmlns="http://objects/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <BaseObj i:type="Event">
        <!-- Event object details -->
    </BaseObj>
</ArrayOfBaseObj>

而不是键入与返回的实际对象相同的元素,如:

<ArrayOfEvent xmlns="http://objects/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <Event>
        <!-- Event object details -->
    </Event>
</ArrayOfEvent>


是否仍然可以让XML序列化程序使用包装元素的类型名而不是基类型?JSON似乎返回了正确的类型,这只是xml序列化,我还没有完全了解它。

您需要添加属性[CollectionDataContract]。查看文章了解更多信息。

那么,除了使用另一个类来表示系统中每种类型的特定列表之外,没有其他方法可以做到这一点吗?