我在Windows Phone应用程序中使用Ninject。
我的逻辑包括IBarViewModel接口,它是:
public interface IBarViewModel
{
double Width { get; set; }
bool IsAchieved { get; set; }
CornerRadius Corner { get; set; }
}
目前,IBarViewModel只有一个实现--GenericBarViewModel。
所有IViewModel实现器都必须在创建时设置这三个主要属性。
我想在运行时从我的代码创建这些IBarViewModel的实例。我怎么能这样做。
当我针对一个实现进行编程时(该类只被称为Bar
),我只是像这样调用一个对象初始化器:
_bars.Add(new Bar
{
Width = _totalWidth,
IsAchieved = false,
Corner = new CornerRadius(5, 5, 5, 5)
});
根据这个问题的答案:Inject value into injected dependency我可以将参数传递给ninject模块。
唯一的问题仍然是:我是否必须将我的ninject内核深入到逻辑中来进行这种参数化依赖性解析?
答案 0 :(得分:1)
我认为你根本不应该使用IoC。它没有任何意义。
为什么不简单地让GenericBarViewModel
设置3个属性的默认值,使其成为抽象,让任何其他“Bar”ViewModel实现继承自GenericBarViewModel
?
你想要做什么 ?