注入需要初始化参数的依赖项

时间:2011-12-03 01:51:57

标签: .net silverlight windows-phone-7 inversion-of-control ninject

我在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内核深入到逻辑中来进行这种参数化依赖性解析?

1 个答案:

答案 0 :(得分:1)

我认为你根本不应该使用IoC。它没有任何意义。

为什么不简单地让GenericBarViewModel设置3个属性的默认值,使其成为抽象,让任何其他“Bar”ViewModel实现继承自GenericBarViewModel

你想要做什么