3
當我 一切正常,所有依賴屬性註釋: 通過容器解析。 但是,我現在有一個int屬性,我也想通過容器解析。它不是在構造函數中傳遞的,而是作爲公共屬性傳遞的。所以我嘗試了這個: 現在該屬性被注入,但所有其他使用[Dependency]註釋的屬性爲null且未解析。如果我將InjectionProperty用於一個屬性,我現在是否必須顯式聲明具有[Dependency]屬性的所有其他屬性?或者有更好的方法嗎? 謝謝。
A
回答
1
通過API(運行時)註冊屬性將取消[Dependency]屬性。 你不能同時使用兩者。但是你可以使用反射來獲取用[Dependency]屬性裝飾的屬性,並在運行時註冊它們。
6
雖然@najmeddine是正確的,但您仍然可以執行以下操作。
你的組件:
public class Service : IService
{
[Dependency("Key")]
public Int32 Value { get; set; }
}
報名:
IUnityContainer unity = new UnityContainer()
.RegisterType<IService, Service>()
.RegisterInstance("Key", 2010)
用法很簡單。
如果你現在使用統一2.0或更高版本(這是不適用於你)如果你需要注入你的應用程序在不同的地區不同的值(限界上下文),使用容器層次:
IUnityContainer child = unity.CreateChildContainer()
.RegisterInstance("Key", 1900);
並解決你的組件在child
Unity容器。
更多關於容器層次: http://msdn.microsoft.com/en-us/library/ff660895(PandP.20).aspx
0
正如najmeddine表示,InjectionProperty
註冊覆蓋[Dependency]
屬性...你可以,但是,仍然使用InjectionMethod
對象不會覆蓋[Dependency]
屬性。
我建立了我與可選的 「覆蓋」 方法的對象:
class SomeObject
{
[Dependency("Value")]
public string Value { get; set; }
public void OverrideValue(string value)
{
this.Value = value;
}
}
普通DI將工作如下:
container.RegisterInstance<string>("Value", "Default Value");
container.Resolve<SomeObject>();
隨着覆蓋的值,你會做以下幾點:
container.RegisterType<SomeObject>("NotDefault", new InjectionMethod("OverrideValue", "Other Value"));
container.Resolve<SomeObject>("NotDefault");
我剛剛寫下了我的頭頂,所以我提前爲任何錯別字道歉。 (如果您發現任何內容,只需發表評論,我會很樂意調整我的答案。)
相關問題
- 1. Unity的屬性注入導致堆棧溢出
- 2. 導航屬性null與ajax
- 3. Intent.PutExtra導致「null」
- 4. Android:OverlayItem導致null
- 5. getElementById導致null
- 6. tableView屬性導致循環
- 7. 屬性導致崩潰
- 8. PreApplicationStartMethod屬性導致異常
- 9. C# - 屬性導致的StackOverflow
- 10. 對可空屬性的導出屬性導致崩潰
- 11. Breeze .expand提取null爲導航屬性
- 12. 實體框架導航屬性爲null
- 13. 實體框架導航屬性null
- 14. Automapper null屬性
- 15. 屬性null值
- 16. 屬性爲null
- 17. 在Junit中導致java.lang.reflect.invocationtargetexception null null
- 18. Unity 5 NetworkManager StartHost&StartClient屬性
- 19. 什麼是Unity InjectionConstructor屬性?
- 20. @Enterprise Library Unity屬性注入
- 21. Unity - 注入屬性類
- 22. 微風導入/導出產生null或空的導航屬性
- 23. 不需要NULL值導致
- 24. 雙= NULL導致一個NullPointerException
- 25. .htaccess導致$ _GET返回NULL
- 26. asp.net insertCommand導致NULL值
- 27. INNER JOIN導致NULL RECORD SET
- 28. JPA Id egeneration.AUTO導致NULL?
- 29. 屬性名爲'description'導致崩潰
- 30. 從Java調用AllJoyn屬性導致AnnotationBusException