WCF dotnet-svcutil eszköz a .NET Core-hoz
A Windows Communication Foundation (WCF) dotnet-svcutil eszköze egy .NET-eszköz, amely lekéri a metaadatokat egy webszolgáltatásból egy hálózati helyen vagy egy WSDL-fájlból, és létrehoz egy WCF-osztályt, amely a webszolgáltatás műveleteihez hozzáférő ügyfélproxy-metódusokat tartalmazza.
A szolgáltatásmodell metaadataihoz – .NET-keretrendszer projektek svcutil eszközéhez hasonlóan a dotnet-svcutil egy parancssori eszköz a .NET Core és a .NET Standard projektekkel kompatibilis webszolgáltatás-referencia létrehozásához.
A dotnet-svcutil eszköz a WCF Web Service Reference Visual Studio csatlakoztatott szolgáltató alternatívája, amelyet először a Visual Studio 2017 15.5-ös verziójával szállítottak. A dotnet-svcutil eszköz .NET-eszközként érhető el platformfüggetlen linuxos, macOS és Windows rendszeren.
Fontos
Csak megbízható forrásból származó szolgáltatásokra kell hivatkoznia. A nem megbízható forrásból származó hivatkozások hozzáadása veszélyeztetheti a biztonságot.
Előfeltételek
- .NET Core 2.1 SDK vagy újabb verziók
- Kedvenc kódszerkesztője
Első lépések
Az alábbi példa végigvezeti a .NET Core-webprojektek webszolgáltatás-hivatkozásának hozzáadásához és a szolgáltatás meghívásához szükséges lépéseken. Létre fog hozni egy HelloSvcutil nevű .NET Core-webalkalmazást, és hozzáad egy hivatkozást egy webszolgáltatáshoz, amely a következő szerződést valósítja meg:
[ServiceContract]
public interface ISayHello
{
[OperationContract]
string Hello(string name);
}
Ebben a példában tegyük fel, hogy a webszolgáltatás a következő címen lesz üzemeltetve: http://contoso.com/SayHello.svc
Windows, macOS vagy Linux rendszerű parancsablakban hajtsa végre a következő lépéseket:
Hozzon létre egy HelloSvcutil nevű könyvtárat a projekthez, és hozza létre az aktuális könyvtárat, ahogyan az alábbi példában is látható:
mkdir HelloSvcutil cd HelloSvcutil
Hozzon létre egy új C#-webprojektet a könyvtárban az
dotnet new
alábbi paranccsal:dotnet new web
Telepítse a
dotnet-svcutil
NuGet-csomagot PARANCSSOR-eszközként:dotnet tool install --global dotnet-svcutil
Futtassa a dotnet-svcutil parancsot a webszolgáltatás referenciafájljának létrehozásához az alábbiak szerint:
dotnet-svcutil http://contoso.com/SayHello.svc
A létrehozott fájlt a rendszer HelloSvcutil/ServiceReference/Reference.cs néven menti. A dotnet-svcutil eszköz emellett csomaghivatkozásként hozzáadja a projekthez a proxykód által igényelt WCF-csomagokat.
A szolgáltatáshivatkozás használata
Állítsa vissza a WCF-csomagokat a
dotnet restore
következő paranccsal:dotnet restore
Keresse meg a használni kívánt ügyfélosztály és művelet nevét.
Reference.cs
egy olyan osztályt tartalmaz, amely aSystem.ServiceModel.ClientBase
szolgáltatáson végzett műveletek meghívására használható metódusokkal öröklődik. Ebben a példában a SayHello szolgáltatás Hello műveletét szeretné meghívni.ServiceReference.SayHelloClient
az ügyfélosztály neve, és a művelet meghívására használható metódussalHelloAsync
rendelkezik.Nyissa meg a fájlt a
Startup.cs
szerkesztőben, és adjon hozzá egyusing
direktívát a felül található szolgáltatáshivatkozási névtérhez:using ServiceReference;
Configure
A webszolgáltatás meghívásához szerkessze a metódust. Ezt úgy teheti meg, hogy létrehoz egy példányt az osztályból, amely örökliClientBase
és meghívja a metódust az ügyfélobjektumon:public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(async (context) => { var client = new SayHelloClient(); var response = await client.HelloAsync(); await context.Response.WriteAsync(response); }); }
Futtassa az alkalmazást a
dotnet run
következő paranccsal:dotnet run
Keresse meg a böngészőben a konzolon (például
http://localhost:5000
) felsorolt URL-címet.
A következő kimenetnek kell megjelennie: "Hello dotnet-svcutil!"
Az eszközparaméterek részletes leírásához dotnet-svcutil
hívja meg a súgóparamétert átadó eszközt az alábbiak szerint:
dotnet-svcutil --help
Visszajelzés és kérdések
Ha kérdése vagy visszajelzése van, nyisson meg egy problémát a GitHubon. A Meglévő kérdéseket és problémákat a GitHub WCF-adattárában is áttekintheti.
Kibocsátási megjegyzések
- A frissített kiadási információkért tekintse meg a kibocsátási megjegyzéseket , beleértve az ismert problémákat is.