Я хочу создать простой поставщик 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, как предлагает Ян, но если у кого-то есть реальные примеры кода, это было бы потрясающе.