Laden...

WCF-Service Return Value

Erstellt von attaÄhh vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.587 Views
a
attaÄhh Themenstarter:in
78 Beiträge seit 2004
vor 14 Jahren
WCF-Service Return Value

Hallo,
ich habe einen WCF-Webservice mit verschiedenen Methoden. Eine davon hat als Rückgabewert eine Klasse mit verschiedenen Properties. Die Rückgabeklasse sieht so aus:


[Serializable]
    public class Result
    {
        private ResultTypes _resultType = ResultTypes.None;
        [DataMember]
        public ResultTypes ResultType 
        {
            get
            {
                return _resultType;
            }
            set
            {
                _resultType = value;
            }
        }

        private string _message = "";
        [DataMember]
        public  string Message
        {
            get
            {
                return _message;
            }
            set
            {
                _message = value;
            }
        }
    }

Meine private-Vaiablen fangen alle mit einem Unterstrich an, die Properties sind normal geschrieben. Wenn ich vom Client aus der Methode aufrufe
und auf die Klasse zugreifen möchte bietet er mir die Properties allerdings nur mit Unterstrich an - was natürlich etwas unhandlich ist. Ich hab es schon mit dem [DataMember] Attribut versucht. Hat aber nichts geholfen.

Woran liegt denn das ?

Gruß Marcel

G
497 Beiträge seit 2006
vor 14 Jahren

du solltest die Klasse schon sauber mit Attributen und Attributwerten ausstatten:


[DataContract(Name = "XYZ", Namespace = "Blubb.ABC")]
public class XYZ
{

        private string _message = "";
        [DataMember(Name = "Message")]
        public  string Message
        {
            get
            {
                return _message;
            }
            set
            {
                _message = value;
            }
        }
}

so stellst du auch sicher, daß sich der Membername für WCF-Clients nicht ändert, wenn du die Eigenschaft "Message" irgendwann mal umbenennst.

E
111 Beiträge seit 2006
vor 14 Jahren

Hallo!

Ich hätte da auch nochmal eine Frage: Wie kann man eigentlich die Methoden aus einer Klasse über den Webservice zu Verfügung stellen.

Ich habe eine Silverlight-Klassenbibliothek und aus dieser benutze ich eine Klasse in meinem Webservice. In der Klasse sind Eigenschaften, Methoden, sowie auch ein zweiter Konstruktor mit Parametern enthalten.

Möchte ich nun über den Webservice-Proxy in meiner Silverlight-Applikation eine neue Instanz dieser Klasse erstellen, kann ich nicht auf den zweiten Konstrukor und auch nicht auf die Methoden zugreifen, sondern nur auf die Eigenschaften.

Habt ihr da evtl. eine Idee?

MfG
Echo]6[

G
497 Beiträge seit 2006
vor 14 Jahren

du meinst eine Methode, die du in einer Klasse in der Webservice-Anwendung erstellt hast, auf der Konsumentenseite (WS-Client) benutzen? Geht nicht. Es werden nur Daten übertragen, keine Programminhalte. Wär ja noch schöner, wenn ein Webdienst Programmcode in eine Anwendung weiterreichen könnte. Abgesehen sind Webservices dazu da, plattformunabhängig Daten zwischen Anwendungen austauschen zu können. Das wäre nicht möglich, wenn man da tatsächlich echte Objektinstanzen vom Webservice empfangen könnte.