簡體   English   中英

如何在運行時統一更新構造函數參數值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM