WCF datacontractserialization - неожиданные элементы <a: anyType> - PullRequest
0 голосов
/ 21 мая 2011

Текущий вывод xml выглядит следующим образом:

 <response xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <totalResultCount>10</totalResultCount> 
 <results xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
 <a:anyType i:type="result">
  <EmployeeCode>007</EmployeeCode> 
  <EmployeeName>Bond, James</EmployeeName> 
 </a:anyType>
 <a:anyType i:type="result">
  <EmployeeCode>006</EmployeeCode> 
  <EmployeeName>Foo, Bar</EmployeeName> 
  </a:anyType>
</results>
</response>

Я бы хотел, чтобы xml был в этом формате:

     <response xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
      <totalResultCount>10</totalResultCount> 
     <results xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
     <result>
      <EmployeeCode></EmployeeCode> 
      <EmployeeName></EmployeeName> 
      </result>
</results>
</response>

Контракты на передачу данных

internal static class KnownTypesProvider 
        {     
            public static IEnumerable<Type> GetKnownTypes(ICustomAttributeProvider provider)     
            { 
                // collect and pass back the list of known types    
                List<Type> types = new List<Type>();
                types.Add(typeof(EmployeeDTO));
                return types;
            }
        }

        [DataContract(Name = "response")]
        public class Response
        {
            [DataMember(Order = 1)]
            public int totalResultCount { get; set; }
            [DataMember(Order = 2)]        
            public IEnumerable results { get; set; }
        }

        [DataContract(Name = "result")]
        public class EmployeeDTO
        {
            [DataMember]
            public string EmployeeCode { get; set; }
            [DataMember]
            public string EmployeeName { get; set; }  
}

Что мне здесь не хватает?

1 Ответ

1 голос
/ 21 мая 2011

IEnumerable - это список Object, поэтому WCF добавляет тип к выводу.Можете ли вы использовать IEnumerable или List ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...