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. Android:OverlayItem導致null
- 3. getElementById導致null
- 4. PreApplicationStartMethod屬性導致異常
- 5. 實體框架導航屬性null
- 6. Automapper null屬性
- 7. 屬性null值
- 8. 在Junit中導致java.lang.reflect.invocationtargetexception null null
- 9. INNER JOIN導致NULL RECORD SET
- 10. 雙= NULL導致一個NullPointerException
- 11. .htaccess導致$ _GET返回NULL
- 12. asp.net insertCommand導致NULL值
- 13. 不需要NULL值導致
- 14. Excel VBA - listbox.selected屬性導致錯誤
- 15. 從Java調用AllJoyn屬性導致AnnotationBusException
- 16. 刪除外鍵屬性導致異常
- 17. 更改facealpha屬性導致圖自毀
- 18. FreeMarker XML屬性目前導致undefined
- 19. ASP.NET MVC驗證:導致javascript屬性?
- 20. 屬性名爲'description'導致崩潰
- 21. Chingu輸入屬性將導致異常
- 22. 屬性導致錯誤的方法
- 23. 對象屬性導致錯誤
- 24. 角指令屬性導致錯誤
- 25. 變換屬性將導致僞像
- 26. @Enterprise Library Unity屬性注入
- 27. Unity - 注入屬性類
- 28. 什麼是Unity InjectionConstructor屬性?
- 29. C#Entity Framework 4導致性能下降的導航屬性
- 30. gcc:Double NULL sentinel屬性?