【发布时间】:2022-02-18 01:00:02
【问题描述】:
在我的 API 中,我必须包装 WCF 服务,我添加了对项目的引用并 我将此添加到 IServiceCollection
services.AddScoped<IServiceClient, ServiceClient>(sp =>
new ServiceClient($"{configuration.GetValue<string>(Constant.Url)}"));
我的 ServiceClient 类:
public class ServiceClient: IServiceClient
{
private string urlService;
// WCF Service to wrapp
private WCFServiceReference.WCFServiceServiceClient _WCFServiceServiceClient;
public ServiceClient(string urlService)
{
this.urlService = urlService;
BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
this._WCFServiceServiceClient = new WCFServiceReference.WCFServiceServiceClient(basicHttpBinding, new EndpointAddress(this.urlService));
}
public Task<CalculateResponse> CalculateAsync(Request input)
{
return CalculateAsync(input, CancellationToken.None);
}
public Task<GetProductListResponse> GetProductListAsync(ProductRequest input)
{
return GetElencoProdottiAsync(input, CancellationToken.None);
}
public Task<GetVariableOfProductResponse> GetVariableOfProductAsync(GetVariableRequest input)
{
return GetVariableOfProductAsync(input, CancellationToken.None);
}
private Task<GetProductListResponse> GetProductListAsync(ProductRequest input, CancellationToken none
{
return this._WCFServiceServiceClient.GetProductListAsync(input);
}
private Task<GetVariableOfProductResponse> GetVariableOfProductAsync(GetVariableRequest input, CancellationToken none)
{
return this._WCFServiceServiceClient.GetVariableOfProductAsync(input);
}
private Task<CalculateResponse> CalculateAsync(Request input, CancellationToken none)
{
return this._WCFServiceServiceClient.CalculateAsync(input);
}
}
当我启动我的应用程序时,此调用 CreateHostBuilder(args).Build().Run();
在 Main 上升以下 Excpetion:
某些服务无法构建(验证时出错 服务描述符 'ServiceType: Namespace.IProductService 生命周期:Scoped ImplementationType:Namespace.ProductService':无法 在尝试时解析“Namespace.ServiceClient”类型的服务 激活“Namespace.ProductService”。)
【问题讨论】: