Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das dotnet-svcutil.xmlserializer NuGet-Paket kann eine Serialisierungsassembly für .NET Core-Projekte vorab generieren. Es generiert vorab C#-Serialisierungscode für die Typen in der Clientanwendung, die vom WCF-Dienstvertrag verwendet werden und die vom XmlSerializer serialisiert werden können. Dadurch wird die Startleistung der XML-Serialisierung beim Serialisieren oder Deserialisieren von Objekten dieser Typen verbessert.
Voraussetzungen
- .NET Core 2.1 SDK oder höher
- Ihr Lieblingscode-Editor
Mit dem Befehl dotnet --info können Sie überprüfen, welche Versionen von .NET SDK und Laufzeit bereits installiert sind.
Erste Schritte
Um dotnet-svcutil.xmlserializer in einer .NET Core-Konsolenanwendung zu verwenden:
Erstellen Sie einen WCF-Dienst mit dem Namen "MyWCFService" mithilfe der Standardvorlage "WCF Service Application" in .NET Framework. Fügen Sie das
[XmlSerializerFormat]-Attribut wie folgt zu der Dienstmethode hinzu:[ServiceContract] public interface IService1 { [XmlSerializerFormat] [OperationContract(Action = "http://tempuri.org/IService1/GetData", ReplyAction = "http://tempuri.org/IService1/GetDataResponse")] string GetData(int value); }Erstellen Sie eine .NET Core-Konsolenanwendung als WCF-Clientanwendung, die auf .NET Core 2.1 oder höher ausgerichtet ist. Erstellen Sie beispielsweise eine App mit dem Namen "MyWCFClient" mit dem folgenden Befehl:
dotnet new console --name MyWCFClientUm sicherzustellen, dass Ihr Projekt auf .NET Core 2.1 oder höher ausgerichtet ist, prüfen Sie das
TargetFrameworkXML-Element in Ihrer Projektdatei:<TargetFramework>netcoreapp2.1</TargetFramework>Fügen Sie einen Paketverweis zu
System.ServiceModel.Httphinzu, indem Sie den folgenden Befehl ausführen.dotnet add package System.ServiceModel.HttpFügen Sie den WCF-Clientcode hinzu:
using System.ServiceModel; class Program { static void Main(string[] args) { var myBinding = new BasicHttpBinding(); var myEndpoint = new EndpointAddress("http://localhost:2561/Service1.svc"); //Fill your service url here var myChannelFactory = new ChannelFactory<IService1>(myBinding, myEndpoint); IService1 client = myChannelFactory.CreateChannel(); string s = client.GetData(1); ((ICommunicationObject)client).Close(); } } [ServiceContract] public interface IService1 { [XmlSerializerFormat] [OperationContract(Action = "http://tempuri.org/IService1/GetData", ReplyAction = "http://tempuri.org/IService1/GetDataResponse")] string GetData(int value); }Fügen Sie einen Verweis auf das
dotnet-svcutil.xmlserializerPaket hinzu, indem Sie den folgenden Befehl ausführen:dotnet add package dotnet-svcutil.xmlserializerWenn Sie den Befehl ausführen, sollte der Projektdatei ein Eintrag wie folgt hinzugefügt werden:
<ItemGroup> <DotNetCliToolReference Include="dotnet-svcutil.xmlserializer" Version="1.0.0" /> </ItemGroup>Erstellen Sie die Anwendung durch Ausführen
dotnet build. Wenn alles erfolgreich ist, wird eine Assembly mit dem Namen MyWCFClient.XmlSerializers.dll im Ausgabeordner generiert. Wenn das Tool die Assembly nicht generiert hat, werden Warnungen in der Buildausgabe angezeigt.Starten Sie den WCF-Dienst, indem Sie
http://localhost:2561/Service1.svczum Beispiel im Browser ausführen. Starten Sie dann die Clientanwendung, und sie wird automatisch geladen und verwendet die vorgenerierten Serialisierer zur Laufzeit.