Megosztás a következőn keresztül:


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

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:

  1. 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
    
  2. Hozzon létre egy új C#-webprojektet a könyvtárban az dotnet new alábbi paranccsal:

    dotnet new web
    
  3. Telepítse a dotnet-svcutil NuGet-csomagot PARANCSSOR-eszközként:

    dotnet tool install --global dotnet-svcutil
    
  4. 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

  1. Állítsa vissza a WCF-csomagokat a dotnet restore következő paranccsal:

    dotnet restore
    
  2. Keresse meg a használni kívánt ügyfélosztály és művelet nevét. Reference.cs egy olyan osztályt tartalmaz, amely a System.ServiceModel.ClientBaseszolgá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ódussal HelloAsync rendelkezik.

  3. Nyissa meg a fájlt a Startup.cs szerkesztőben, és adjon hozzá egy using direktívát a felül található szolgáltatáshivatkozási névtérhez:

    using ServiceReference;
    
  4. 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ökli ClientBase é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);
        });
    }
    
    
  5. Futtassa az alkalmazást a dotnet run következő paranccsal:

    dotnet run
    
  6. 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

Tájékoztatás