4

有没有一种简单的方法可以使用 Ninject 将所有 Factory 接口绑定到 ToFactory() 扩展方法?

public class Foo
{
    readonly IBarFactory barFactory;

    public Foo(IBarFactory barFactory)
    {
        this.barFactory = barFactory;
    }

    public void Do()
    {
        var bar = this.barFactory.CreateBar();
        ...
    }
}

public interface IBarFactory
{
    Bar CreateBar();
}

对于上面的代码,我可以使用:

kernel.Bind<IBarFactory>().ToFactory();

如果我有 10 或 20 个需要绑定的 IFactory 接口,我会怎么做?

4

1 回答 1

6

是的,使用约定:https ://github.com/ninject/ninject.extensions.conventions

this.Bind(x => x.From_UseSomeOverloadToSpecifyTheAssemblies()
                .SelectAllInterfaces().EndingWith("Factory")
                .BindToFactory();
于 2012-06-08T00:21:27.533 回答