C#中的Web服务和属性

时间:2009-10-07 21:42:30

标签: c# web-services

我对Web Services很陌生。我用这样的类创建了一个Web服务:

public class ClassA
{
     private ClassB _varA;

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

当我尝试从网站访问该属性时,它会给我null。

using WebServiceA;

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

我在这里遗漏了什么吗?请帮忙。感谢。

2 个答案:

答案 0 :(得分:4)

当您通过Web服务发送对象时,实际的功能不会附带它,只有属性值(所以示例中的get实际上不会发生在客户端)。相反,它会创建同一对象的“模拟”类型版本。

我想我会在这个编辑中澄清:

当您连接到返回对象的Web服务时,它实际上只返回该对象的XML表示形式。此XML表示仅包含序列化的数据(方法取决于设置,在普通的Web服务中,它通常只是一个XML序列化程序),因此不包含任何函数或属性定义。

所以,这个例子中的类是:

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

另外:FredrikMörk说它是correclty,它叫做'Proxy'对象,而不是模拟对象,我想不到这个词。

答案 1 :(得分:0)

B类是否在webservice的项目中实现?