C# 重写代码中的配置文件WCF基址

C# 重写代码中的配置文件WCF基址,c#,.net,wcf,wcf-endpoint,C#,.net,Wcf,Wcf Endpoint,我有一个WCF Windows服务,该服务的配置文件中指定了一个端点 <baseAddresses> <add baseAddress="net.tcp://localhost:9000/MyEndpoint"/> </baseAddresses> 我知道,如果我将配置文件的基址保留为空,并将基址传递给ServiceHost构造函数,那么工作正常-即,我可以指定新的基址。但是,我想使用配置文件指定默认值(而不是硬编码)。看看我发布的这个示例。它有一个

我有一个WCF Windows服务,该服务的配置文件中指定了一个端点

<baseAddresses>
    <add baseAddress="net.tcp://localhost:9000/MyEndpoint"/>
</baseAddresses>

我知道,如果我将配置文件的基址保留为空,并将基址传递给ServiceHost构造函数,那么工作正常-即,我可以指定新的基址。但是,我想使用配置文件指定默认值(而不是硬编码)。

看看我发布的这个示例。它有一个完全通过代码配置的WCF服务的完整工作示例。然后,您应该能够使用Environment.GetEnvironmentVariable获取端口号,并将其传递给ServiceHost的构造函数:

class CustomHost : ServiceHost
{
    public CustomHost(Type serviceType) : base (serviceType)         
    {
    }
    protected override void ApplyConfiguration()
    {
        base.ApplyConfiguration();

        this.AddBaseAddress(new Uri("net.tcp://localhost:9010/MyEndpoint"));
    }
}