#wcf #datacontract
#wcf #datacontract
Вопрос:
Я новичок в WCF и пытаюсь вывести некоторый XML в определенном формате.
В настоящее время мой объект ServiceEvents содержит коллекцию объектов ServiceEvent (см. Классы и DataContracts ниже). Когда я извлекаю эти объекты через WCF, вывод XML для коллекции добавляет Array0 к элементу Event. Для системы, использующей xml, это не идеально (см. xml ниже).
В идеале я хотел бы также удалить атрибут attr0=»EventArray» из элемента Events, но это имеет низкий приоритет.
Если бы кто-нибудь мог указать мне правильное направление, я был бы очень признателен.
[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>