WCF,xml创建我想要删除的ExtensionData标记

时间:2013-11-20 22:36:56

标签: c# javascript wcf xmlserializer datacontractserializer

我从WCF项目创建一个'List',我正在测试项目中使用该服务。在javascript中使用XMLSerializer,我能够创建XML结果。然而,这个'ExtensionData'标签非常烦人。

例如,

<?xml version="1.0"?>
<ArrayOfStudent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Student>
    <ExtensionData/>
    <Name>Chris</Name>
    <Age>72</Age>
</Student>
<Student>
    <ExtensionData/>
    <Name>Christine</Name>
    <Age>2400</Age>
</Student>

我尝试添加

[ServiceBehaviorAttribute(IgnoreExtensionDataObject = true)]
public class StudentService: IStudentService
{
}

但是,没有运气..

1 个答案:

答案 0 :(得分:1)

您是否尝试为List创建新类并使用[CollectionDataContractAttribute],因为在您的情况下.Net为List创建了一个新类型并将其命名为ArrayOfStudent。

这可以解决您的问题。

public StudentList ListStudents()
{
    // return new List<student>();
       return new StudentList(); 
}

[CollectionDataContract()]
public class StudentList : List<Student>
{}