Ich habe eine C # -Klasse definiert wie folgt:
%Vor%Ich erstelle eine Instanz dieser Klasse auf meinem Server. Ich versuche dann, es über den Draht über einen WCF-Dienst wie hier gezeigt zu übergeben:
%Vor%Alles kompiliert an dieser Stelle gut. Wenn ich "Service-Referenz" in meiner Silverlight-App neu kompiliere, erhalte ich einen Kompilierungsfehler, der dem Folgenden ähnelt:
MyNamespace.GenericItemOfMyCustomType [zusätzliche Zeichen] enthält keine öffentliche Definition für 'GetEnumerator'
Ich habe keine Ahnung warum:
Was mache ich falsch?
Sleiman ist korrekt, aber man kann Bounded Generics verwenden, wie in beschrieben Dieser Artikel , und Sie können möglicherweise erreichen, was Sie wollen. Auf diese Weise können Sie einen generischen Typ innerhalb des Service erstellen und verfügbar machen. Der Konsument wird es jedoch nicht als generisch anzeigen, da der Typ in der Serviceoperation angegeben ist.
Sie können keine WCF-Verträge definieren, die auf generischen Typparametern beruhen. Generika sind spezifisch für .NET, und deren Verwendung würde die serviceorientierte Natur von WCF verletzen. Ein Datenvertrag kann jedoch eine Auflistung als Datenmember enthalten, da WCF dedizierte Marshallingregeln für Sammlungen bereitstellt.
Wie Sleiman darauf hingewiesen hat, werden Generika in SOAP nicht unterstützt.
WCF und Generika - & gt; Ссылка
Verwandte Frage - & gt; WCF. Service generische Methoden