那麼,我遇到了使用Unity的情況,我不知道如何解決/方法......這是我的問題。Unity IoC和註冊原始類型
我正在開發一個WPF應用程序,我使用MVVM(Prism Implimentation因此是Unity容器)。我有一個名爲MenuItemsViewModel
(複數)的ViewModel,其中包含IEnumerable
的MenuItemViewModel
(單數)。在MenuItemsViewModel
我是從這樣的生成函數填充這個集合的構造......
yield return new MenuItemViewModel(eventAggregator)
{
Text = "Dashboard",
CommandText = "DASHBOARD"
};
yield return new MenuItemViewModel(eventAggregator)
{
Text = "Areas",
CommandText = "AREAS"
};
yield return new MenuItemViewModel(eventAggregator)
{
Text = "Users",
CommandText = "USERS"
}; //etc....
我真的不希望被這樣做,而是依靠容器來構建這些對象爲我但是我怎麼知道神的名字呢?我真的不希望我的Item ViewModel對我的Item ViewModel有任何知識,除了它實現的接口外,我已經獲得了大約15個這些菜單項,每個菜單項都有不同的屬性值。
我並不是全新的DI/IoC,但這對我來說是一個很大的問題。我看到並從注入服務中受益,但您對具體價值做了什麼?
我在這裏完全用錯誤的詞彙表達嗎?我應該只是解決容器和然後設置屬性的具體實例嗎?這將是一個選擇,但我希望我的道具儘可能只讀。
我希望這是足夠清晰,..我大喊如果不是:-)
任何幫助深表感謝。
其實,如果MenuItemsViewModel有一個構造函數一個MenuItemViewModel [](必須是一個數組),那麼默認的相關決議應踢,將自動爲您注入MenuItemViewModel的所有命名實例。 – 2010-09-16 18:01:30
@Chris你是對的+1 – onof 2010-09-17 11:04:38
天才,......天才!非常感謝 :-) – Stimul8d 2010-09-17 11:32:03