[英]c# unity container constructor injection with run-time value
我在我的應用程序中使用基於統一容器XML配置的構造函數注入。 我需要將一些運行時值傳遞給構造函數。 自從我使用XML配置以來,有沒有辦法在代碼中做到這一點?
例如
public Calculator(DateTime businessDate)
{
_businessDate = businessDate;
}
//Calculator is instantiated using unity container and mapped in config file.
//How to pass businessDate at run-time?
謝謝!!! 提前。
XML configs
是什么意思? 如果您正在使用app.config
或web.config
並且businessDate
存儲在配置文件中,則可以使用system.Configuration.ConfigurationManager
類來實現此目的。
<AppSetting>
<add key="businessDate" value="22/12/1786">
</AppSetting>
DateTime newdt = DateTime.ParseExact(ConfigurationManager.AppSetting["businessDate"], "dd/MM/yyyy", CultureInfo.InvariantCulture);
new Calculator(newdt);
編輯:根據您的評論,您可以通過注冊類型來解決此問題
// Register type
DateTime newdt = DateTime.ParseExact(ConfigurationManager.AppSetting["businessDate"], "dd/MM/yyyy", CultureInfo.InvariantCulture);
YourContainer.RegisterInstance<DateTime>("newdt", newdt);
YourContainer.RegisterType<Calculator>(new InjectionConstructor(YourContainer.Resolve<DateTime>("newdt")));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.