我对 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 说得对,它被称为“代理”对象,而不是模拟对象,我想不出这个词。
