以下是我的WCF代码 -
public class Detect : IDetect
{
[DataMember]
string landMark1, landMark2, landMark3;
[DataMember]
int pingCounter;
public void setLandMark(string lm1, string lm2, string lm3)
{
landMark1 = lm1;
landMark2 = lm2;
landMark3 = lm3;
}
public void setPingCounter(int p)
{
pingCounter = p;
}
}
当我调试我的代码并访问setLandMark()时,它将客户端对象传递的参数分配给类的私有数据成员,但是当我调用另一个函数setPingCounter()时,它将地标数据成员显示为null。 / p>
假设以下是我的客户端代码 -
DetectClient proxy = new DetectClient();
proxy.setLandMark("google.com", "yahoo.com", "facebook.com");
proxy.setPingCounter(5);
当setPingCounter被称为landmark1时,landmark2,landmark3被初始化为null。我想每次调用方法都会启动不同的客户端对象。如果是这样,我该如何避免这种情况?
答案 0 :(得分:1)
我想你创建WCF服务?如果是这样,您可能忘记将 ServiceBehavior 属性应用于您的服务实现。默认情况下,它将为每个合同请求创建服务。
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
将此添加到您的检测服务实施中,您的服务将是每个合同请求的单一服务。