Ninject to StructureMap - PullRequest
       25

Ninject to StructureMap

0 голосов
/ 28 октября 2010

Я хочу преобразовать следующий код в 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);
}

В основном я ищу эквивалент ToConstant метода в StructureMap.Может кто-нибудь, пожалуйста, помогите мне?

Ответы [ 2 ]

3 голосов
/ 28 октября 2010

Предполагая, ToConstant() означает «использовать этот экземпляр», эквивалент в StructureMap:

For<MembershipProvider>().Use(MockMembership.Object);
0 голосов
/ 28 октября 2010

Поскольку ToConstant не означает синглтон, вы хотите это:

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

Когда вы передаете делегат в For (), StructureMap по умолчанию будет переходным.

...