2008-09-25 10 views
5

Ich füge eine Servicereferenz zu einem meiner Projekte in Visual Studio 2008 hinzu. Auf dem Bildschirm "Service Reference Settings" wähle ich die Standardoption "Reuse types in allen referenzierten Assemblys ". Ich habe auf das Projekt verwiesen, für das ich einen Typ wiederverwenden möchte. Dieser Typ wird als Parameter an eine Webmethode übergeben."Wiederverwendung vorhandener Typen" wird ignoriert, wenn eine Servicereferenz hinzugefügt wird

Wenn jedoch die Datei References.cs generiert wird, erstellt es immer noch eine doppelte Proxy-Version dieses Typs. Gibt es etwas, das mir fehlt? Müssen Sie dem referenzierten Typ etwas Besonderes tun? Vielleicht einige spezielle Attribute hinzufügen?

Antwort

6

Ich habe meine eigene Frage beantwortet (denke ich). Ich versuchte eine Service-Referenz zu verwenden, um auf einen vorhandenen ASP.NET-Webdienst zu verweisen, aber die Wiederverwendung von Typen wird für Webdienste der alten Schule nicht unterstützt. Es funktioniert nur mit WCF-Diensten. Also habe ich den Sprung gewagt und meinen Web-Service in einen echten WCF-Dienst umgewandelt und jetzt funktioniert es gut.

5

Ich hatte ein ähnliches Problem, bis ich das folgende Attribut im Code definierte, so dass der Namespace der Objekte, die sich auf den Servicevertrag bezogen, auf den gleichen Namespace wie die allgemein referenzierten Typen festgelegt wurde.

[assembly: ContractNamespace("YOUR_NAMESPACE_HERE")] 
+0

Wo haben Sie das festgelegt? Auf Schnittstelle des Dienstes oder der implementierenden Klasse? Beide geben mir eine Fehlermeldung, dass es ein ungültiger Ort ist, um das Attribut zu setzen ... – drozzy

+0

drozzy, Attribut ist Assembly-Bereich, muss es allgemein in assemblyinfo.cs platziert werden Aber es ist mir nicht geholfen .. – devi

Verwandte Themen