Как создать поставщика Moq для Ninject?

Я хочу создать простой поставщик Ninject, который возвращает экземпляры Moq'd вместо конкретных типов. Пока у меня есть это:

public class NinjectMockProvider<T> : IProvider
{
    public static Type Type { get { return typeof(T); } }

    public object Create(IContext context)
    {
        Mock<T> newMock = new Mock<T>();
        return newMock.Object;
    }
}

Но я уверен, что все это неправильно, потому что я не знаю, что делаю на самом деле. Любая помощь и примеры кода были бы замечательными. Мне просто нужна возможность делать:

kernel.Bind<ISomeInterface>().ToProvider<NinjectMoqProvider<ISomeInterface>>();

или что-то в этом роде.

Обновление

Я действительно понял, что могу выполнить то, что хочу, используя привязку метода Ninject:

kernel.Bind<ISomeInterface>().ToMethod(x => new Mock<ISomeInterface>().Object);

Я все еще хотел бы больше элегантный способ, и мне, возможно, придется проверить Ninject.Moq, как предлагает Ян, но если у кого-то есть реальные примеры кода, это было бы потрясающе.

8
задан Chev 1 August 2011 в 20:57
поделиться