2016-10-23 4 views
0

Folgende ist meine WCFZugriff auf Datenelementwerte in WCF?

code-
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; 
    } 
} 

Wenn ich meinen Code und Zugang setLandMark debuggen() es ordnet die von Client-Objekt an den privaten Daten Mitglied der Klasse übergebenen Parameter, aber wenn ich rufe die andere Funktion setPingCounter() Es zeigt die Landmark-Datenelemente als null an.

nehme folgende ist mein Code für die Client-Side-

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

Wenn setPingCounter landmark1 genannt wird, landmark2, landmark3 initialisiert auf null. Ich denke, jeder Aufruf der Methode initiiert verschiedene Client-Objekte. Wenn ja, wie kann ich das vermeiden?

+0

Zu viele Antworten hier. Können Sie weitere Informationen zur Zuweisung und zum Aufruf von ypur-Eigenschaften bereitstellen? – eocron

+0

bearbeitet die Frage –

+0

Sie müssen das 'private' Mitglied nicht als' DataContract' markieren, nur Mitglied, das Sie veröffentlichen, 'public' Mitglieder. –

Antwort

1

Ich nehme an, Sie erstellen WCF-Dienst? Wenn ja, vergessen Sie wahrscheinlich, das richtige Attribut ServiceBehavior an Ihre Service-Implementierung zu vergeben. Standardmäßig wird Service für jede Anfrage zu seinem Vertrag erstellt.

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)] 

Fügen Sie diese auf Ihrem Detect Service-Implementierung und Ihr Service wird für jede Anfrage Vertrag zu einzelnen sein.

Verwandte Themen