0

我希望将以下代码转换为 StructureMap:

private Mock<MembershipProvider> MockMembership = new Mock<MembershipProvider>();

private StandardKernel GetIoCKernel()
{
    var modules = new IModule[]
    {
        new InlineModule(
            new Action<InlineModule>[]
            {
                m => m.Bind<MembershipProvider>()
                    .ToConstant(MockMembership.Object),
            })
    };

    return new StandardKernel(modules);
}

主要是我在寻找与ToConstantStructureMap 中的方法等效的方法。谁能帮帮我吗?

4

2 回答 2

3

假设ToConstant()意思是“使用这个实例”,StructureMap 中的等价物是:

For<MembershipProvider>().Use(MockMembership.Object);
于 2010-10-27T21:54:41.123 回答
0

由于 ToConstant 并不意味着单例,你想要这个:

private StandardKernel GetIoCKernel()
{
    return new Container(c => c.For<MembershipProvider>().Use(() => MockMembership.Object));
}

当您将委托传递给 For() 时,StructureMap 将默认为瞬态。

于 2010-10-27T21:55:27.827 回答