Codemancer.Extensions.Wcf
1.0.0
dotnet add package Codemancer.Extensions.Wcf --version 1.0.0
NuGet\Install-Package Codemancer.Extensions.Wcf -Version 1.0.0
<PackageReference Include="Codemancer.Extensions.Wcf" Version="1.0.0" />
paket add Codemancer.Extensions.Wcf --version 1.0.0
#r "nuget: Codemancer.Extensions.Wcf, 1.0.0"
// Install Codemancer.Extensions.Wcf as a Cake Addin
#addin nuget:?package=Codemancer.Extensions.Wcf&version=1.0.0
// Install Codemancer.Extensions.Wcf as a Cake Tool
#tool nuget:?package=Codemancer.Extensions.Wcf&version=1.0.0
Extensions.Wcf
Codemancer.Extensions.Wcf is a library that modernizes consuming SOAP based Web services by offering a similiar development experience to working with HttpClient.
If you are upgrading your client application but are still required to connect to some legacy SOAP service than this package is for you as I hope to show that it is still possible to teach an old dog new tricks.
Features
- Fluent builder API to configure WCF DI services
- Support for Polly policies
Example Usage
Given a WCF service
You can import service references via visual studio tooling for code generation or create service contract manually.
[ServiceContract]
public interface ISampleService
{
[OperationContract]
string Example1(int param1, string param2, bool param3);
[OperationContract]
Task<string> Example1Async(int param1, string param2, bool param3);
}
Configure WCF client
In your application Startup.cs file configure each WCF client in Startup.cs as follows:
services.AddWcf<ISampleService>()
.ConfigureServiceEndpoint(endpoint =>
{
endpoint.Address = new EndpointAddress("http://some.domain.com/endpoint.svc");
});
Configure resilient strategies with Polly policies
var retryPolicy = Policy<Message>.Handle<FaultException>()
.RetryAsync(3);
services.AddWcf<ISampleService>()
.ConfigureServiceEndpoint(endpoint =>
{
endpoint.Address = new EndpointAddress("http://some.domain.com/endpoint.svc");
})
.AddPolicyHandler(retryPolicy);
References:
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1)
- Microsoft.Extensions.Options (>= 8.0.2)
- Polly (>= 8.3.1)
- System.ServiceModel.Http (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 85 | 4/29/2024 |
1.0.0-beta.30 | 44 | 4/29/2024 |
0.0.0 | 368 | 10/11/2022 |
0.0.0-beta.22 | 94 | 10/11/2022 |
0.0.0-beta.16 | 102 | 10/10/2022 |