【发布时间】:2012-03-26 22:45:29
【问题描述】:
假设我有以下内容:
public interface IDoStuff
public class DoerOfStuff : IDoStuff
public class RandomClass
{
public IDoStuff Doer {get; set; }
...
}
假设 RandomClass 只有一个默认构造函数(我们希望保持这种状态),我的问题是:
- 如何引导 StructureMap 以便
RandomClass中的Doer自动连接到DoerOfStuff? - 我怎样才能使它更通用,这样任何具有
IDoStuff属性的类都会自动连接到DoerOfStuff? - 如何使
DoerOfStuff成为单身人士?
提前致谢!
注意:我认为 StructureMap 可以做到这一点,因此理想情况下,答案将表明这一点。如果由于某种原因你知道它不是,请随意展示你如何使用不同的容器来做到这一点。
干杯,
-肖恩
编辑:
这是我如何让它工作的:
ObjectFactory.Initialize(x =>
{
x.For<IDoStuff>().Singleton().Use<DoerOfStuff>();
x.SetAllProperties(policy => policy.TypeMatches(type => type == typeof(IDoStuff)));
// this works too
// x.FillAllPropertiesOfType<IDoStuff>();
});
不过,无论哪种情况,这只有在我还添加以下内容时才有效:
public RandomClass()
{
ObjectFactory.BuildUp(this);
}
我仍然很好奇我是否可以以某种方式跳过BuildUp()。
【问题讨论】:
标签: c# inversion-of-control structuremap