Веб-сервис и свойства в C # - PullRequest
1 голос
/ 08 октября 2009

Я довольно новичок в веб-сервисах. Я создал Web Serivce с таким классом:

public class ClassA
{
     private ClassB _varA;

     public ClassB VarA
     {
         get {
             if(_varA == null)
                _varA = new ClassB();
             return _varA;
         }
         set { _varA = value; }
     }
}

Когда я пытаюсь получить доступ к собственности с веб-сайта, это дает мне нулевое значение.

using WebServiceA;

ClassA obj = new ClassA();
obj.VarA // gives me null ?

Я что-то здесь упускаю? Пожалуйста помоги. Спасибо.

Ответы [ 2 ]

4 голосов
/ 08 октября 2009

Когда вы отправляете объект через веб-сервис, фактические функции не идут с ним, только значения свойств (поэтому получение в вашем примере на самом деле не происходит на стороне клиента). Вместо этого он создает версию того же объекта типа «макет».

Я рассчитывал уточнить в этом редакторе:

Когда вы подключаетесь к веб-службе, которая возвращает объект, она на самом деле просто возвращает XML-представление объекта. Это представление XML содержит только данные, которые сериализуются (метод зависит от настроек, в веб-сервисах plain jane, обычно это просто XML Serializer), поэтому не содержит никаких функций или определений свойств.

Итак, класс в этом примере:

public class ClassA
{
     public ClassB VarA
     {
         get;
         set;
     }
}

Также: Фредрик Мёрк сказал, что это правильно, его называют объектом «Прокси», а не фиктивным, я не мог придумать слова.

0 голосов
/ 08 октября 2009

Реализуется ли класс B внутри проекта веб-службы?

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