gpt4 book ai didi

c# - 使用 StructureMap 的 Autowiring 器

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:23 25 4
gpt4 key购买 nike

假设我有以下内容:

public interface IDoStuff 

public class DoerOfStuff : IDoStuff

public class RandomClass
{
public IDoStuff Doer {get; set; }
...
}

假设 RandomClass 只有一个默认构造函数(我们希望保持这种状态),我的问题是:

  1. 我如何引导 StructureMap 以便 RandomClass 中的 Doer 自动连接到 DoerOfStuff
  2. 我怎样才能使它更通用,以便任何具有 IDoStuff 属性的类都自动连接到 DoerOfStuff
  3. 如何使 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()

最佳答案

new Container(x => {
x.For<IDoStuff>().Singleton().Use<DoerOfStuff>();
x. FillAllPropertiesOfType<IDoStuff>();
})

关于c# - 使用 StructureMap 的 Autowiring 器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9634808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com