使用Unity Framework和构造函数注入我有这样的配置:
<dependencyInjection>
<type name="IInfoService" xmlns="http://schemas.microsoft.com/practices/2010/unity">
<alias alias="IInfoService" type="Services.IInfoService, Services" />
<alias alias="InternWS" type="Services.InternWS.Info, Services.InternWS" />
<alias alias="Mock" type="Services.Mock.Info, Services.Mock" />
<container>
<register type="IInfoService" mapTo="Mock">
<constructor>
<param name="name" value="mockservice" />
</constructor>
</register>
<register type="IInfoService" mapTo="InternWS" name="InternWS_Service">
<constructor>
<param name="name" value="InternWS_Service" />
<param name="endpoint" value="http://staging.webservices/infoservice.svc" />
</constructor>
</register>
</container>
</type>
</dependencyInjection>
它完美无缺。
对于我的不同环境,我必须使用以下配置指向不同的Web服务:
我想将其更改为:
并使用参数覆盖来设置实际值:
var parameterOverrides = new ParameterOverrides();
foreach(var ? in ?)
{
var paramName = ?;
var paramValue = ?;
parameterOverrides.Add(paramName, paramValue.Replace("[Environment]", GetEnvironment()));
}
container.Resolve<T>(item.Name, parameterOverrides);
这是最好的方法吗?
如何找到paramName和paramValue?
这不是在运行时更改值,而是为DTAP街道中的每个步骤配置1个配置文件。
在配置文件中,有30个这样的部分,必须进行检查。