如何在WCF中访问数据成员值?

时间:2016-10-23 10:15:15

标签: c# wcf

以下是我的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。我想每次调用方法都会启动不同的客户端对象。如果是这样,我该如何避免这种情况?

1 个答案:

答案 0 :(得分:1)

我想你创建WCF服务?如果是这样,您可能忘记将 ServiceBehavior 属性应用于您的服务实现。默认情况下,它将为每个合同请求创建服务。

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]

将此添加到您的检测服务实施中,您的服务将是每个合同请求的单一服务。