目前,我在 WCF Web 服务引用提供程序工具的帮助下,在 .NET 中使用一些具有多个终结点的 Web 服务。如果 Web 服务有任何更改,那么我必须更新或删除并重新附加,然后再次必须构建以获取 DLL 并放入部署服务器。
这是非常耗时的。还有其他选择吗?
首先,WCF 由一些复杂的绑定、身份验证安全性可能不适用于 NetCore,例如 Wshttpbinding。通常,基于 Core 的客户端支持 basichttpbinding。
在接口、地址等服务信息不变的情况下,我们可以通过通道工厂动态调用服务,无论服务器如何改变服务的实现方式。它不会影响客户端的调用。
下面是一个示例。
class Program
{
static void Main(string[] args)
{
Uri uri = new Uri("http://10.157.13.69:1500");
BasicHttpBinding binding = new BasicHttpBinding();
ChannelFactory<ICalculator> factory = new ChannelFactory<ICalculator>(binding,new EndpointAddress(uri));
ICalculator service = factory.CreateChannel();
try
{
var result = service.Add(34.32, 2.34);
Console.WriteLine(result);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
throw;
}
}
}
[ServiceContract]
public interface ICalculator
{
[OperationContract]
double Add(double a, double b);
}
这是一个相关的文档。
https://learn.microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-to-use-the-channelfactory
如果有什么我可以帮忙的,请随时告诉我。