Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Configure方法时如何在代码中设置WCF基址_C#_.net_Wcf - Fatal编程技术网

C# 使用Configure方法时如何在代码中设置WCF基址

C# 使用Configure方法时如何在代码中设置WCF基址,c#,.net,wcf,C#,.net,Wcf,对于纯基于代码的WCF配置,在.NET 4.0中,可以在创建ServiceHost实例时为服务配置基址(假设采用自托管方案,这适合我的需要)。虽然在.NET 4.5中仍然可以这样做,但MSDN意味着使用新的Configure()方法是一种更好的做法,因为它使这种基于代码的配置对于自托管场景更容易,对于web托管场景更容易(请参阅) 然而,问题是,尽管您必须在Configure方法(System.ServiceModel.ServiceConfiguration)中使用的对象具有BaseAddre

对于纯基于代码的WCF配置,在.NET 4.0中,可以在创建ServiceHost实例时为服务配置基址(假设采用自托管方案,这适合我的需要)。虽然在.NET 4.5中仍然可以这样做,但MSDN意味着使用新的
Configure()
方法是一种更好的做法,因为它使这种基于代码的配置对于自托管场景更容易,对于web托管场景更容易(请参阅)


然而,问题是,尽管您必须在Configure方法(System.ServiceModel.ServiceConfiguration)中使用的对象具有
BaseAddresses
属性,但它是只读的。一定有办法在代码中设置基址吗?我的网络搜索不仅没有发现关于这个特定问题的任何内容,而且根本没有关于这个配置方法的文章或帖子,除了我引用的单个MSDN页面

在反射器中查看
BaseAddresses
属性的功能:

// System.ServiceModel.ServiceConfiguration
public ReadOnlyCollection<Uri> BaseAddresses
{
    get
    {
        return this.host.BaseAddresses;
    }
}

这意味着
ServiceConfiguration
只是配置
ServiceHost
的标准方式的扩展。因此,我建议任何设置
基地址的旧方法仍然被视为最佳实践(编程或使用配置)。

这是严重的WTF。我现在和你有同样的问题,我对网上没有讨论这个问题感到困惑。
// System.ServiceModel.ServiceConfiguration
internal ServiceConfiguration(ServiceHost host)
{
    ServiceConfiguration.CheckArgument<ServiceHost>(host, "host");
    this.host = host;
}