从 Unity 配置中获取当前域

Get Current Domain from Unity Configuration

我有一项服务可以使用执行域对外部应用程序进行 API 调用。因此,如果我处于测试模式,我会调用“http://localhost”,如果我处于生产模式,我希望它调用不同的地址。到目前为止我有

    public interface IMyService{
       void DoStuff();
    }

    private string _url;
    public class MyService : IMyService
    {

    public MyService(string ExecutingDomainAddress)
    {
       _url = ExecutingDomainAddress;
    }

    public void DoStuff()
    {
      var destination = _url + "/GetCustomers";
    }

    }

在我的 Unity 配置中,我将我的服务和合同定义为

container.RegisterType<IMyService, MyService>();

我想将当前 url/address 注入到服务构造函数中。可以从这里完成吗? 例如:

var theCurrenDomain = "http://localhost/MySite"; //I want this to be dynamically generated e.g. Request.Url.Authority
container.RegisterInstance<string>("ExecutingDomainAddress", theCurrenDomain, new PerThreadLifetimeManager());

container.RegisterType<IMyService, MyService>(new InjectionConstructor(new ResolvedParameter<string>("ExecutingDomainAddress")));

如何从此处获取 url 并将其应用于 "theCurrentDomain" 变量?

我倾向于创建一个 class 来表示这些设置,然后将 class 注册为一个类型。然后任何依赖于这些设置的 classes 都可以通过构造函数注入请求该类型的对象。

container.RegisterType<FileSystemPricerStagingDirectorySettings>(new InjectionConstructor(ConfigurationManager.AppSettings["PricerStagingDirectory"]));

container.RegisterType<IPricerStagingRepository, FileSystemPricerStagingRepository>();

public FileSystemPricerStagingRepository(FileSystemPricerStagingDirectorySettings pricerStagingDirectorySettings)
{
    // now I can get what I need from pricerStagingDirectorySettings
}