我想在使用Ninject创建的实例之后进行初始化 我写了以下代码:
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IHardwareService>().To<HardwareServiceClient>().InRequestScope().OnActivation(client =>
{
InitializeServiceHeader(); // never execute
client.ChannelFactory.Endpoint.Behaviors.Add(new IncludeClientData());
});
}
我希望在以下代码之后调用InitializeServiceHeader();
:
var instance = new StandardKernel().Get<HardwareServiceClient>();
但永远不会InitializeServiceHeader();
致电
应该怎么做?
答案 0 :(得分:1)
在这种情况下,InitializeServiceHeader()
不会被称为IHardwareService
的类型绑定。
如果您有一个名为HardwareServiceTest
的类,并且它的构造函数的参数类型为IHardwareService
public Class HardwareServiceTest
{
public HardwareServiceTest(IHardwareService serv)
{
//do something with serv;
}
}
在这种情况下,请致电
new StandardKernel().Get<HardwareServiceTest>()
将触发对InitializeServiceHeader()的调用。