You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 3.1中Service_SoapClient无参构造函数报错求助

解决.NET Core 3.1中Service_SoapClient无参构造器缺失问题

问题描述

编译报错:

Service_SoapClient does not contain a constructor that takes 0 arguments

用户代码示例:

public class Program
{
    public static void Main(string[] args)
    {
        Service_SoapClient a = new Service_SoapClient();

        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
}

解决方案

.NET Core添加服务引用时,默认不会生成无参构造器,需根据场景选择对应构造器重载:

  • 方式1:显式传入绑定与端点地址
    直接指定SOAP服务的绑定类型和端点URL实例化客户端:

    var binding = new BasicHttpBinding();
    var endpoint = new EndpointAddress("http://your-service-endpoint-url");
    Service_SoapClient client = new Service_SoapClient(binding, endpoint);
    
  • 方式2:使用配置文件中的客户端配置
    确保appsettings.json或配置文件已配置服务客户端信息,通过配置名称实例化:

    // 配置名称对应配置文件中<client>节点的name属性
    Service_SoapClient client = new Service_SoapClient("Service_Soap");
    
  • 方式3:依赖注入场景下使用HttpClient重载
    在Startup.cs的ConfigureServices中注册客户端,利用HttpClient实例化:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddHttpClient<Service_SoapClient>((sp, client) =>
        {
            client.BaseAddress = new Uri("http://your-service-endpoint-url");
        });
    }
    

    后续在需要使用的地方通过构造注入获取客户端实例即可。

内容的提问来源于stack exchange,提问作者kai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:55:46