假设ApplicationSettings类是适用于我的应用程序的设置的通用存储库,例如 TimeoutPeriod、DefaultUnitOfMeasure、HistoryWindowSize 等...假设 MyClass 使用其中一个设置 - DefaultUnitOfMeasure。
我对正确使用控制容器反转的阅读 - 如果我在这方面错了请纠正我 - 是您在其构造函数中定义类的依赖关系:
public class MyClass {
public MyClass(IDataSource ds, UnitOfMeasure default_uom) {...}
}
然后用类似的方法调用实例化你的类
var mc = IoC.Container.Resolve<MyClass>();
其中IDataSource已被分配一个具体实现,而 default_uom 已被连接以从ApplicationSettings.DefaultUnitOfMeasure属性进行实例化。然而,我不得不怀疑,所有这些箍是否真的有必要跳过。我有什么麻烦我应该怎么做
public class MyClass {
public MyClass(IDataSource ds) {
UnitOfMeasure duom = IoC.Container.Resolve<UnitOfMeasure>("default_uom");
}
}
是的,我的许多课程最终都依赖于IoC.Container,但无论如何我的大多数课程都会有这种依赖。只要类是耦合的,我似乎应该充分利用它。请敏捷大师,告诉我我错在哪里。