我正在使用 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 应用程序时,ninject 应该用凭据注入 WCf,因为服务器上的 WCF 需要经过身份验证。