我是WCF的新手并尝试以特定格式输出一些XML。
目前,我的ServiceEvents对象包含ServiceEvent对象的集合(请参阅下面的类和DataContracts)。当我通过WCF获取这些对象时,集合的XML输出将Array0附加到Event元素。对于使用xml的系统,这并不理想(参见下面的xml)。
理想情况下,我想从Events元素中删除属性attr0 =“EventArray”,但它的优先级较低。
如果有人能指出我正确的方向,那将非常感激。
[ServiceContract]
public interface IEventAppService
{
[OperationContract]
ServiceEvents GetEvents();
}
[CollectionDataContract(Name = "Events")]
public class ServiceEvents : List<ServiceEvent>
{
public ServiceEvents(){}
public ServiceEvents(List<ServiceEvent> serviceevent)
{
base.AddRange(serviceevent);
}
}
[DataContract(Name = "Event")]
public class ServiceEvent
{
[DataMember]
public long ID
{
get;
set;
}
[DataMember]
public string Name
{
get;
set;
}
[DataMember]
public System.DateTime DateStart
{
get;
set;
}
[DataMember]
public System.DateTime DateEnd
{
get;
set;
}
}
<GetEvents>
<MethodParameters>
<Events attr0="EventArray"isNull="false">
<EventArray0>
<DateEnd>20/11/2011 12:00:00 AM</DateEnd>
<DateStart>10/11/2011 12:00:00 AM</DateStart>
<ID>2</ID>
<Name>Event1</Name>
</EventArray0>
</Events>
</MethodParameters>
</GetEvents>