【发布时间】:2023-03-13 22:25:01
【问题描述】:
我正在将 Ninject 与 Windows Phone 应用程序一起使用。
我的逻辑包括 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 内核深入到逻辑中才能进行这种参数化的依赖解析?
【问题讨论】:
-
见here。只需让您的类在构造函数中接受这些参数并指示 ninject 提供哪些值。
标签: .net silverlight windows-phone-7 inversion-of-control ninject