[英]How can I update a constructor parameter value in unity at run time
我有以下Unity配置部分
<register type="IDbContext" mapTo="ProjectEntities" name="ProjectEntitiesContext" >
<constructor>
<param name="connectionString" value="conString" />
</constructor>
哪個很棒。 我在ProjectEntities類的connectionString參數中獲得了“ conString”的值。
但是,我想做的是在代碼中更改conString參數的值。
就像是
myIocContaniner.registratons.ProjectEntities.Constructor.value = "Different Connection String"
並且在創建時將“不同的連接字符串”傳遞給ProjectEntities構造函數。
我要解決的問題是根據請求使.net WebApi與不同的數據庫進行交互。
我假設您每次使用IDbContext時都會解析它(類似這樣)?
IDbContext myDbContext = myIocContainer.Resolve<IDbContext>("ProjectEntitiesContext");
// Some code here using myDbContext
您可以在Unity中重新映射類型。
myIocContainer.RegisterType<IDbContext, ProjectEntities>("ProjectEntitiesContext", new InjectionConstructor("Different Connection String"));
下次解析它時,它將是具有新注入的構造函數參數的新映射類型。
這還假設您僅將連接字符串作為構造函數的參數。 如果您有其他參數,則需要相應地調整InjectionConstructor。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.