FunqではなくNinjectでServiceStackを使用しようとしています。私は次のものを持っています:
public interface IContainerAdapter
{
T Resolve<T>();
T TryResolve<T>();
}
public class NinjectIocAdapter : IContainerAdapter
{
private readonly IKernel kernel;
public NinjectIocAdapter(IKernel kernel)
{
this.kernel = kernel;
}
public T Resolve<T>()
{
return this.kernel.Get<T>();
}
public T TryResolve<T>()
{
return this.kernel.TryGet<T>();
}
}
次に、Configureメソッド内で:
public override void Configure(Funq.Container container)
{
//Set JSON web services to return idiomatic JSON camelCase properties
ServiceStack.Text.JsConfig.EmitCamelCaseNames = true;
IKernel kernel = new StandardKernel();
container.Adapter = new NinjectIocAdapter(kernel);
//Set MVC to use the same Funq IOC as ServiceStack
//ControllerBuilder.Current.SetControllerFactory(new FunqControllerFactory(container));
}
しかし、次のエラーが発生します。
Cannot implicitly convert type 'NinjectIocAdapter' to 'ServiceStack.Configuration.IContainerAdapter'.
また、Funq IoCを使用するようにMVCを設定するために、行のコメントを解除する必要があるかどうかもわかりません。Ninjectを使用するので、コメントアウトしました。あれは正しいですか?
これがすべて機能していると思います。依存関係を内部に登録するだけです。
private static void RegisterServices(IKernel kernel)
{
}