Hierarchisches Konfigurationsmodell
In diesem Beispiel wird veranschaulicht, wie eine Hierarchie von Konfigurationsdateien für Dienste implementiert wird. Es wird auch gezeigt, wie Bindungen, Dienstverhalten und Endpunktverhalten von höheren Ebenen in der Hierarchie geerbt werden.
Beispieldetails
Eine der Funktionen, die für WCF in .NET Framework, Version 4 entwickelt wurden, besteht in der Verbesserung des hierarchischen Konfigurationsmodells. Ein hierarchisches Konfigurationsmodell ist z. B. das Modell, das von Machine.config -> Rootweb.config -> Web.config definiert wurde. In .NET Framework 4 werden die Bindungen und Verhaltensweisen, die in den oberen Ebenen der Konfigurationshierarchie definiert werden, zum Dienst ohne explizite Konfiguration hinzugefügt. In diesem Beispiel wird gezeigt, wie die Dienstkonfiguration basierend auf Konfigurationselementen vereinfacht werden kann, die auf Computer- oder Anwendungsebene definiert sind.
Dieses Beispiel umfasst neun Dienste, die in drei Hierarchieebenen definiert sind. Service1
befindet sich in der Stammebene. Service2
und Service3
erben die Standardelemente von Service1
. Service4
, Service5
, Service6
und Service7
werden auf einer dritten Ebene der Hierarchie definiert und erben die Standardelemente von Service3
. Service10
und Service11
befinden sich schließlich auf einer vierten Ebene der Hierarchie.
Alle Dienste implementieren den IDesc
-Vertrag. Nachfolgend wird die Definition der IDesc
-Schnittstelle mit den in dieser Schnittstelle verfügbar gemachten Methoden anzeigt. Die IDesc
-Schnittstelle wird in Service1.cs definiert.
// Define a service contract
[ServiceContract(Namespace="http://Microsoft.Samples.ConfigHierarchicalModel")]
public interface IDesc
{
[OperationContract]
List<string> ListEndpoints();
[OperationContract]
List<string> ListServiceBehaviors();
[OperationContract]
List<string> ListEndpointBehaviors();
}
Die Implementierung dieser Methoden durch die Dienste ist einfach. ListEndpoints
durchläuft alle Dienstendpunkte und gibt eine Liste aller Endpunkte des Diensts zurück. ListServiceBehaviors
durchläuft alle dem Dienst hinzugefügten Verhaltensweisen und gibt eine Liste mit allen dem Dienst zugeordneten Dienstverhaltensweisen zurück. ListEndpointBehaviors
verhält sich so ähnlich wie ListServiceBehaviors
, gibt jedoch eine Liste mit Verhaltensweisen von Endpunkten zurück.
Diese Implementierung ermöglicht es, dass der Client die Anzahl der vom Dienst verfügbar gemachten Endpunkte und die dem Dienst hinzugefügten Verhaltensweisen und Endpunktverhaltensweisen kennt. Der Client, der als Teil des Beispiels implementiert wurde, fügt allen Diensten in der Projektmappe einen Dienstverweis hinzu und zeigt diese Elemente für jeden der Dienste an.
So verwenden Sie dieses Beispiel
So führen Sie den Client aus
Öffnen Sie die Datei ConfigHierarchicalModel.sln in Visual Studio 2010.
Wenn das Clientprojekt nicht bereits als Startprojekt eingerichtet ist, führen Sie folgende Schritte aus.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe, und wählen Sie dann die Option Eigenschaften aus.
Wählen Sie unter Allgemeine Eigenschaften die Option Startprojekt aus, und klicken Sie dann auf Einzelnes Startprojekt.
Wählen Sie in der Dropdownliste Einzelnes Startprojekt die Option Client aus.
Klicken Sie auf OK, um das Dialogfeld zu schließen.
Drücken Sie F6, um die Projektmappe zu erstellen.
Drücken Sie STRG + F5, um den Client auszuführen.
Hinweis: |
---|
Wenn diese Schritte nicht funktionieren, stellen Sie mithilfe der folgenden Schritte sicher, dass die Umgebung ordnungsgemäß eingerichtet wurde.
|
Hinweis: |
---|
Die Beispiele sind möglicherweise bereits auf dem Computer installiert. Überprüfen Sie das folgende (standardmäßige) Verzeichnis, bevor Sie fortfahren.
<Installationslaufwerk>:\WF_WCF_Samples
Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)- und WF-Beispiele herunterzuladen. Dieses Beispiel befindet sich im folgenden Verzeichnis.
<Installationslaufwerk>:\WF_WCF_Samples\WCF\Basic\Services\ConfigHierarchicalModel
|