Webverweise und benutzerdefinierte Proxyklassen für Webdienstclients in Klassenbibliotheken

Aktualisiert: November 2007

Sie können im Anwendungs-Designer Webverweise auf Webdienste oder benutzerdefinierte Proxyklassen für Webdienstclients darstellen, die in Projekten oder Assemblys, auf die verwiesen wird, als Consumerendpunkte für Webdienste in Windows-, Office- oder ASP.NET-Anwendungen definiert sind. Sie müssen dafür mehrere Aufgaben ausführen, um diese Elemente als "indirekte" Typen von und Verbindungen zu Consumerendpunkten von Webdiensten anzuzeigen.

Hinweis:

Sie können nicht direkt Consumerendpunkte für Webdienste zur Darstellung dieser Elemente hinzufügen, indem Sie die Consumeranwendung mit einem Anbieterendpunkt eines Webdiensts verbinden und diese Elemente in eine Klassenbibliothek verschieben.

Vorher müssen Sie aber die Consumeranwendung des Webdiensts implementieren, und das Anwendungsprojekt muss eine Anwendungskonfigurationsdatei (Web.config oder App.config) enthalten. Weitere Informationen finden Sie unter Implementieren von Anwendungen in Anwendungsdiagrammen.

Anforderungen für das Reverse Engineering von Webverweisen und benutzerdefinierten Proxyklassen für Webdienstclients in Klassenbibliotheken

Bei ASP.NET-Anwendungen müssen Sie die entsprechenden Einträge in der Konfigurationsdatei Web.config hinzufügen, und es müssen Proxyklassen mit übereinstimmenden und vollqualifizierten Namen vorhanden sein und gefunden werden. Bei Windows- und Office-Anwendungen ist allerdings das Vorhandensein dieser Einträge in der Konfigurationsdatei App.config und ihre Zuweisung als WebServiceURL-Typ ausreichend. Wenn diese Einträge aber nicht dem WebServiceURL-Typ zugeordnet sind, oder wenn sie dem String-Typ zugeordnet sind, müssen auch Proxyklassen mit übereinstimmenden und vollqualifizierten Namen vorhanden sein und gefunden werden. Weitere Informationen finden Sie unter Überlegungen zu benutzerdefinierten Proxyklassen für Webdienstclients.

Wenn eine Consumeranwendung eines Webdiensts auf Klassenbibliotheken verweist, die Webverweise oder benutzerdefinierte Proxyklassen für Webdienstclients definieren, muss im Consumeranwendungsprojekt für den Webdienst ein Projektverweis auf die Klassenbibliothek hinzugefügt werden. Die Einstellungen in der Konfigurationsdatei des Anwendungsprojekts überschreiben jedoch die in der Konfigurationsdatei der Klassenbibliothek. Daher müssen Sie die in der Konfigurationsdatei der Klassenbibliothek erstellten Einstellungen in die Konfigurationsdatei der Consumeranwendung kopieren, um sie verwenden zu können. Weitere Informationen finden Sie unter Gewusst wie: Verweisen auf Klassenbibliotheken von Anwendungen in Anwendungsdiagrammen.

Wenn diese Anforderungen erfüllt sind, rekonstruiert der Anwendungs-Designer aus diesen Konfigurationsdateieinträgen Consumerendpunkte des Webdiensts. Wenn die Webdienst-URLs in diesen Einträgen den URLs vorhandener Anbieterendpunkte für Webdienste entsprechen, werden außerdem auch die Verbindungen zwischen diesen Consumer- und Anbieterendpunkten angezeigt. Wenn kein übereinstimmender Anbieterendpunkt für den Webdienst vorhanden ist, aber mit dem URL eine gültige WSDL-Datei für den Webdienst gefunden werden kann, indem "?wsdl" oder "?disco" an diesen angefügt wird, wird im Anwendungsdiagramm ein externer Webdienst hinzugefügt und mit dem Consumerendpunkt des Webdiensts verbunden. Wenn keine WSDL-Datei mit dem URL gefunden wird, wird der Consumerendpunkt für den Webdienst nicht verbunden.

Änderungen, die Auswirkungen auf indirekte Consumerendpunkte für Webdienste haben

Bestimmte Änderungen beeinflussen indirekte Consumerendpunkte für Webdienste und ihre Verbindungen wie folgt:

  • Durch das Erstellen oder Löschen von Verbindungen zu indirekten Consumerendpunkten für Webdienste im Anwendungsdiagramm wird der URL des verbundenen Webdiensts in der Konfigurationsdatei der Consumeranwendung hinzugefügt bzw. aus dieser entfernt.

  • Das Löschen indirekter Consumerendpunkte für Webdienste aus dem Anwendungsdiagramm führt zum Löschen der zugehörigen Konfigurationsdateieinträge, aber nicht zum Löschen der Webverweise oder benutzerdefinierten Proxyklassen aus den Klassenbibliotheken.

    Hinweis:

     Wenn Sie einen indirekten Endpunkt löschen, müssen Sie sicherstellen, dass weder die Anwendung noch Klassenbibliotheken, auf die verwiesen wird, auf den entsprechenden Konfigurationsdateieintrag verweisen.

  • Das Löschen oder Umbenennen einer Proxyklasse oder Assembly, auf die durch eine ASP.NET-Anwendung verwiesen wird, führt zum Löschen des entsprechenden Consumerendpunkts für den Webdienst.

    Die Ursache hierfür ist, dass der Konfigurationsdateieintrag keiner Proxyklasse mehr entspricht. Wenn Sie wieder eine Proxyklasse mit einem übereinstimmenden Namen hinzufügen, wird auch der Consumerendpunkt wieder angezeigt.

  • Wenn Consumerendpunkte für Webdienste kopiert und eingefügt werden, deren Webverweise sich in einer Klassenbibliothek oder Assembly befinden, dann werden die Webverweise für die eingefügten Endpunkte im Stammprojekt angezeigt.

Siehe auch

Referenz

Überlegungen zu benutzerdefinierten Proxyklassen für Webdienstclients

Weitere Ressourcen

Verweisen auf Klassenbibliotheken von Anwendungen in Anwendungsdiagrammen