Ninject を使用して WCF クライアントをローカル環境に挿入し、正常に動作しています。これは私がそれを実装した方法です:
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
RegisterServices(kernel);
return kernel;
}
私のRegisterServices(kernel)
方法では、次の実装があります。
private static void RegisterServices(IKernel kernel)
{
#if DEBUG
kernel.Bind<MyWCFClient.IMyWCF>().To<MyWCFClient.MyWCFClient>();
#elif Test_at_server
kernel.Bind<MyWCFClient.IMyWCF>().To<MyWCFClient.MyWCFClient>()
/*.WithConstructorArgument("UserName", Credentials.UserName.UserName = "user")
.WithConstructorArgument("Password", Credentials.UserName.Password = "password")*/;
#endif
}
私がやろうとしているのは、サーバーに Web アプリケーションをデプロイするときに、サーバーの WCF を認証する必要があるため、ninject は WCf に資格情報を挿入する必要があるということです。