2016-10-23 41 views
0

以下是我的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 ()它將地標數據成員顯示爲空。

假設下面是我的客戶副作用

DetectClient proxy = new DetectClient(); 
proxy.setLandMark("google.com", "yahoo.com", "facebook.com"); 
proxy.setPingCounter(5); 

當setPingCounter被稱爲landmark1,landmark2,landmark3代碼被初始化爲null。我想每個調用方法都會啓動不同的客戶端對象。如果是這樣,我該如何避免這種情況?

+0

這裏的答案太多了。你能否提供更多關於你如何分配和調用ypur屬性的信息? – eocron

+0

編輯問題 –

+0

您不必將'private'成員標記爲'DataContract',只是您將公開的成員'public'成員。 –

回答

1

我想你創建WCF服務?如果是這樣,您可能會忘記將ServiceBehavior屬性應用於您的服務實施。默認情況下,它將爲其合同的每個請求創建服務。

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)] 

添加到您的檢測服務實現和服務將是一個爲每個請求收縮。