gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:43:13 26 4
gpt4 key购买 nike

对于基于纯代码的 WCF 配置,在 .NET 4.0 中,可以在创建 ServiceHost 实例时为服务配置基址(假设是自托管场景,这适合我的需要)。虽然仍然可以使用 .NET 4.5 执行此操作,但 MSDN 暗示使用新的 Configure() 方法是一种更好的做法,因为它使这种基于代码的配置对于自托管和很多Web 托管方案更容易(请参阅 Configuring WCF Services in Code)。

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

最佳答案

在反射器中查看 BaseAddresses 属性的作用:

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

我无法在使用 ServiceHost.BaseAddresses 的 ServiceConfiguration 中找到任何其他方法

ServiceConfiguration 的实例是使用 ServiceHost 实例创建的:

// System.ServiceModel.ServiceConfiguration
internal ServiceConfiguration(ServiceHost host)
{
ServiceConfiguration.CheckArgument<ServiceHost>(host, "host");
this.host = host;
}

这意味着 ServiceConfiguration 只是对配置 ServiceHost 的标准方式的扩展。所以我建议任何旧的设置 BaseAddress 的方法仍然被认为是最佳实践(编程或使用配置)。

关于c# - 使用 Configure 方法时如何在代码中设置 WCF 基地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31839659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com