Ninject中创建实例后如何调用方法?

How to call a method after creating the instance in Ninject?

我想在使用 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();打电话。
应该怎么做?

在这种情况下,不会调用 InitializeServiceHeader(),因为类型绑定是针对 IHardwareService

如果您有一个名为 HardwareServiceTest 的 class 并且它的构造函数具有类型为 IHardwareService

的参数
public Class HardwareServiceTest
{
    public HardwareServiceTest(IHardwareService serv)
    {
       //do something with serv;
    }
}

在这种情况下,调用,

new StandardKernel().Get<HardwareServiceTest>()

将触发对 InitializeServiceHeader() 的调用。