Skip to main content
 首页 » 编程设计

c#之C# 中的 Web 服务和属性

2024年02月24日28落叶无声

我对 Web 服务还很陌生。我用这样的类创建了一个 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 ? 

我是不是漏掉了什么?请帮忙。谢谢。

请您参考如下方法:

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

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

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

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

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

另外:Fredrik Mörk 说得对,它被称为“代理”对象,而不是模拟对象,我想不出这个词。