Vorgehensweise: Exportieren von Metadaten aus Dienstendpunkten
In diesem Thema wird erklärt, wie Sie Metadaten aus Dienstendpunkten exportieren.
So exportieren Sie Metadaten aus Dienstendpunkten
Erstellen Sie ein neues Visual Studio-Konsolenanwendungsprojekt. Fügen Sie den in den folgenden Schritten gezeigten Code der erzeugten Datei "Program.cs" innerhalb der main()-Methode hinzu.
Erstellen Sie einen WsdlExporter.
Dim exporter As New WsdlExporter()
WsdlExporter exporter = new WsdlExporter();
Legen Sie die PolicyVersion-Eigenschaft auf einen der PolicyVersion-Enumerationswerte fest. In diesem Beispiel wird der Wert auf Policy15 festgelegt. Dies entspricht der WS-Richtlinie 1.5.
exporter.PolicyVersion = PolicyVersion.Policy15
exporter.PolicyVersion = PolicyVersion.Policy15;
Erstellen Sie ein Array mit ServiceEndpoint-Objekten.
Dim myServiceEndpoints() As ServiceEndpoint = New ServiceEndpoint(1) {} Dim myDescription As New ContractDescription("myContract") myServiceEndpoints(0) = New ServiceEndpoint(myDescription, New BasicHttpBinding(), New EndpointAddress("https://localhost/myservice")) myServiceEndpoints(1) = New ServiceEndpoint(myDescription, New BasicHttpBinding(), New EndpointAddress("https://localhost/myservice"))
ServiceEndpoint [] myServiceEndpoints = new ServiceEndpoint[2]; ContractDescription myDescription = new ContractDescription ("myContract"); myServiceEndpoints[0] = new ServiceEndpoint(myDescription,new BasicHttpBinding(),new EndpointAddress("https://localhost/myservice")); myServiceEndpoints[1] = new ServiceEndpoint(myDescription,new BasicHttpBinding(),new EndpointAddress("https://localhost/myservice"));
Exportieren Sie Metadaten für jeden Dienstendpunkt.
'Export all endpoints for each endpoint in collection. For Each endpoint As ServiceEndpoint In myServiceEndpoints exporter.ExportEndpoint(endpoint) Next
// Export all endpoints for each endpoint in collection. foreach (ServiceEndpoint endpoint in myServiceEndpoints) { exporter.ExportEndpoint(endpoint); }
Stellen Sie sicher, dass während des Exportprozesses keine Fehler aufgetreten sind, und rufen Sie die Metadaten ab.
'If there are no errors, get the documents. Dim metadataDocs As MetadataSet metadataDocs = Nothing If (exporter.Errors.Count = 0) Then metadataDocs = exporter.GetGeneratedMetadata() End If
// If there are no errors, get the documents. MetadataSet metadataDocs = null; if (exporter.Errors.Count != 0) { metadataDocs = exporter.GetGeneratedMetadata(); }
Sie können die Metadaten jetzt verwenden, beispielsweise indem Sie sie mithilfe eines Aufrufs der WriteTo-Methode in eine Datei schreiben.
Beispiel
Unten ist die vollständige Codeauflistung für dieses Beispiel angegeben.
Imports System
Imports System.ServiceModel
Imports System.ServiceModel.Description
Module Module1
Sub Main()
Dim exporter As New WsdlExporter()
exporter.PolicyVersion = PolicyVersion.Policy15
Dim myServiceEndpoints() As ServiceEndpoint = New ServiceEndpoint(1) {}
Dim myDescription As New ContractDescription("myContract")
myServiceEndpoints(0) = New ServiceEndpoint(myDescription, New BasicHttpBinding(), New EndpointAddress("https://localhost/myservice"))
myServiceEndpoints(1) = New ServiceEndpoint(myDescription, New BasicHttpBinding(), New EndpointAddress("https://localhost/myservice"))
'Export all endpoints for each endpoint in collection.
For Each endpoint As ServiceEndpoint In myServiceEndpoints
exporter.ExportEndpoint(endpoint)
Next
'If there are no errors, get the documents.
Dim metadataDocs As MetadataSet
metadataDocs = Nothing
If (exporter.Errors.Count = 0) Then
metadataDocs = exporter.GetGeneratedMetadata()
End If
End Sub
End Module
using System;
using System.ServiceModel;
using System.ServiceModel.Description;
namespace WsdlExporterSample
{
class Program
{
static void Main(string[] args)
{
WsdlExporter exporter = new WsdlExporter();
exporter.PolicyVersion = PolicyVersion.Policy15;
ServiceEndpoint [] myServiceEndpoints = new ServiceEndpoint[2];
ContractDescription myDescription = new ContractDescription ("myContract");
myServiceEndpoints[0] = new ServiceEndpoint(myDescription,new BasicHttpBinding(),new EndpointAddress("https://localhost/myservice"));
myServiceEndpoints[1] = new ServiceEndpoint(myDescription,new BasicHttpBinding(),new EndpointAddress("https://localhost/myservice"));
// Export all endpoints for each endpoint in collection.
foreach (ServiceEndpoint endpoint in myServiceEndpoints)
{
exporter.ExportEndpoint(endpoint);
}
// If there are no errors, get the documents.
MetadataSet metadataDocs = null;
if (exporter.Errors.Count != 0)
{
metadataDocs = exporter.GetGeneratedMetadata();
}
}
}
}
Kompilieren des Codes
Verweisen Sie beim Kompilieren der Datei "Program.cs" auf "System.ServiceModel.dll".
Siehe auch
Konzepte
Übersicht über die Metadatenarchitektur
Verwenden von Metadaten
Endpunkte: Adressen, Bindungen und Verträge