Ninject创建命名范围

时间:2018-08-16 14:48:10

标签: c# ninject

我无法在ninject中正确配置范围。

我想在调用方法时创建一个新的作用域。每种类型的所有实例都应该相同。

现在我有以下内容:

拦截器:

private class CreateScopeInterceptor : IInterceptor
{
    public void Intercept(IInvocation invocation)
    {
        using (var scope = invocation.Request.Kernel.CreateNamedScope(ScopeName))
        {
            invocation.Proceed();
        }
    }
}

kernel.Bind<ClassWithExecuteMethod>()
            .To<ClassWithExecuteMethod>()
            .InSingletonScope()
            .Intercept()
            .With<CreateScopeInterceptor>();

然后我有一些工厂类,它们会在该方法内初始化一些类。 这些类与.InNamedScope(ScopeName)绑定 每次调用此方法时,这些类应在该方法中具有相同的实例。

但是我收到一个错误,指出该范围不存在或找不到。 知道我在做什么错吗? 没有可用的匹配范围,并且类型声明为InNamedScope(ScopeName)。

0 个答案:

没有答案