2009-06-17 2 views
0

Я написал веб-службу ASP.NET.Почему мой веб-сервис XML ASP.NET возвращает результаты, которые повторяются?

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

 WebServices.logic pLogic = new WebServices.logic(); 



     WebServices.manager[] pManager = new PowerManager[1]; 


     pManager[0] = new PowerManager(); 

     pManager[0].CustomerId = "sjsjshd"; 
     pManager[0].state = pLogic.getState("sasj"); 



     return pManager[0]; 

Класс pManager выглядит следующим образом:

public string _CustomerId; 

    public int PowerStatus; 

    public List<ArrayList> _Power; 

    public string CustomerId 
    { 
     get 
     { 
      return _CustomerId; 
     } 

     set 
     { 


     _CustomerId = value; 
     } 
    } 


    public List<ArrayList> Power 
    { 
     get 
     { 
      return _Power; 
     } 

     set 
     { 
      _Power = value; 
     } 
    } 

Когда я бегу, я получаю повторение результатов, например, так:

<p> 
<_CustomerId>sjsjshd</_CustomerId> 
<pStatus>0</PowerStatus> 
− 
<_p> 
− 
<ArrayOfAnyType> 
<anyType xsi:type="xsd:int">1</anyType> 
</ArrayOfAnyType> 
<ArrayOfAnyType/> 
</_p> 
<CustomerId>sjsjshd</CustomerId> 
− 
<p> 
− 
<ArrayOfAnyType> 
<anyType xsi:type="xsd:int">1</anyType> 
</ArrayOfAnyType> 
<ArrayOfAnyType/> 
</p> 
</pManager> 

Однако не сохраняется повторяющихся значений (например, я храню имя клиента в коллекции, но только один раз - количество 1). При вызове getState() не сохраняется дубликатов. Этот метод возвращает коллекцию и содержит одно значение, но результаты в XML повторяются.

Как результаты повторяются? При запуске системы я получаю только одну ошибку.

Благодаря

+0

Не могли бы вы выслать код для вашего класса PowerManager, чтобы мы могли видеть, что он делает? Кроме того, ваши результаты XML не отображаются должным образом после того, как вы разместили вопрос. Убедитесь, что он имеет отступы с 4 пробелами, поэтому он выглядит как XML. – CoderDennis

ответ

0

ОК, выглядит как ваш XML сериализация дает вам все открытые член вашего класса PowerManager. На основе именования конвенции, начиная с подчеркиванием, эти члены должны быть частным, как это:

private string _CustomerId; 

private List<ArrayList> _Power; 

Вы также состояние «При запуске системы, я получаю только одну ошибку.» Какую ошибку вы получаете?

+0

Извините, поле является ошибкой. Не беспокойтесь об этом, но вы ответили на мой оригинальный вопрос :) – dotnetdev

Смежные вопросы