Die Einrichtung
Ich möchte einen Webdienst in Visual Studio verwenden. Ich habe einen Dienstverweis hinzugefügt und ihn auf ein WSDL-Dokument verwiesen. Ich erhalte eine Menge generierten Codes, der einwandfrei funktioniert.
Das Problem
In dem Dialogfeld zum Dienstverweis habe ich "Intern" als "Zugriffsebene für generierte Klassen" ausgewählt. Es scheint, als ob dadurch das "internal" Schlüsselwort vor die WhateverSoapClient-Klasse gesetzt wird. Super. Allerdings sind die generierten Modelklassen alle von den Schlüsselwörtern "public partial" begleitet. Der "partial"-Teil ist in Ordnung (sogar erwünscht), aber nicht so das public. Ich möchte, dass diese Klassen ebenfalls intern sind.
Die Lösung?
Sicherlich benutzt Visual Studio (svcutil.exe?) eine Vorlage, um Reference.cs zu generieren, oder? Gibt es einen Weg, diese Vorlage zu ändern oder eine alternative anzugeben? Oder bin ich auf dem Holzweg?
Danke!
Ich bin ganz neu in diesem Bereich, daher habe ich die Frage vielleicht schlecht formuliert.
Bearbeiten: Als Antwort auf den Kommentar von Tuzo, verbinde ich Visual Studio mit dem folgenden:
VS generiert eine interne Klasse namens CatalystEcommerceWebserviceSoapClient, die eine Methode namens Catalogue_Retrieve() hat. Catalogue_Retrieve() gibt ein Catalogue-Objekt zurück, und Visual Studio generiert die Catalogue-Klasse als "public partial". Ich möchte, dass sie intern ist.
Hier sind einige Ausschnitte von dem, was generiert wird:
internal partial class CatalystEcommerceWebsierviceSoapClient : System.ServiceModel.ClientBase, BcApi.EcommerceApi.CatalystEcommerceWebserviceSoap {
public BcApi.EcommerceApi.Catalogue Catalogue_Retrieve(...) {
// ...
}
}
public partial class Catalogue : object, System.ComponentModel.INotifyPropertyChanged {
// ...
}
Und als Antwort auf Jamie, ich kenne T4-Vorlagen dank SubSonic. Also habe ich schon etwas nach einer T4-bezogenen Antwort auf dieses Problem gesucht. Ich könnte noch etwas weiter graben. Danke für den Hinweis.