那么,我遇到了使用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