none
Komplexe Datentypen WCF Service - Silverlight - geht das überhaupt?

    Frage

  • Hallo zusammen,

    ich habe einen WCF Service dessen Calls nicht nur string oder int als Rückgabewert haben, sondern komplexe,

    selbst definierte Typen. Der WCF Service funktioniert im Zusammenspiel mit einer WPF Anwendung super, nicht aber wenn ich diesen in einer Silverlight Anwendung haben will. Der Service wird problemlos eingelesen aber das davon abgeleitete Objekt enthält keine Methoden oder Typen. Entferne ich alle Funktionen die komplexe Datentypen nutzen sowie die Typen selbst, funktioniert der Service auch in Silverlight, nur eben mit Calls für einfache Datentypen. 

    Ist es in Silverlight überhaupt möglich k. Datentypen über einen Service anzubinden?

    Ein Beispieltyp:

        [DataContract]
        public class DataRecord
        {
            [DataMember]
            public List<string> colums;
            [DataMember]
            public List<KeyValuePair<int, List<KeyValuePair<object, object>>>> data; 

            public DataRecord()
            {
                colums = new List<string>();
                data = new List<KeyValuePair<int, List<KeyValuePair<object, object>>>>();
            }
        }

    Wie geschrieben , in Verbindung mit WPF getht das. Danke :)


    Donnerstag, 29. September 2016 11:27

Antworten

  • Hi,

    über einen Webservice kannst Du in dieser Form nur Daten übertragen. Das geht problemlos auch mit (sehr) komplexen Strukturen. Aber Methoden, Funktionen, usw. sind damit nicht übertragbar.

    "object" solltest Du dir allerdings komplett abschminken. Nimm die richtigen Datentypen. Da die Übertragung letztendlich per JSON oder XML Serialisierung/Deserialierung erfolgt, wissen die Anwendungen nicht, was sie da serialisieren sollten.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 29. September 2016 11:30

Alle Antworten

  • Hi,

    über einen Webservice kannst Du in dieser Form nur Daten übertragen. Das geht problemlos auch mit (sehr) komplexen Strukturen. Aber Methoden, Funktionen, usw. sind damit nicht übertragbar.

    "object" solltest Du dir allerdings komplett abschminken. Nimm die richtigen Datentypen. Da die Übertragung letztendlich per JSON oder XML Serialisierung/Deserialierung erfolgt, wissen die Anwendungen nicht, was sie da serialisieren sollten.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 29. September 2016 11:30
  • Hi,

    danke für deine Antwort. Immerhin wusste ich so schon mal des es gehen muss. Letztlich war der "Fehler" das ich unter VS 2015 in der Konfiguration des Services die Checkbox "Typen in Assemblys, auf die verwiesen wird, wiederverwenden" abhaken musste und alles war gut. Dann wird eine File generiert die eine Datasource Definition der Typen enthält, welche im meinem Service vorkommen. Warum & weshalb - keine Ahnung.

    Viele Grüße

    Dienstag, 4. Oktober 2016 11:14