- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当我尝试在 Ninject 中使用 ToFactory 时,我得到 Ninject.ActivationException
var test = new StandardKernel();
test.Bind<IFoo>().To<Foo>();
test.Bind<IFooFactory>().ToFactory();
var factory = test.Get<IFooFactory>();
var foo = factory.GetFoo(); //<--Ninject.ActivationException
工厂:
public interface IFooFactory
{
IFoo GetFoo();
}
异常:
Ninject.ActivationException was unhandled
Message=Error activating IFoo
No matching bindings are available, and the type is not self-bindable.
Activation path:
1) Request for IFoo
Suggestions:
1) Ensure that you have defined a binding for IFoo.
2) If the binding was defined in a module, ensure that the module has been loaded into the kernel.
3) Ensure you have not accidentally created more than one kernel.
4) If you are using constructor arguments, ensure that the parameter name matches the constructors parameter name.
5) If you are using automatic module loading, ensure the search path and filters are correct.
Source=Ninject
StackTrace:
at Ninject.KernelBase.Resolve(IRequest request) in c:\Projects\Ninject\ninject\src\Ninject\KernelBase.cs:line 359
at Ninject.ResolutionExtensions.GetResolutionIterator(IResolutionRoot root, Type service, Func`2 constraint, IEnumerable`1 parameters, Boolean isOptional, Boolean isUnique) in c:\Projects\Ninject\ninject\src\Ninject\Syntax\ResolutionExtensions.cs:line 263
at Ninject.ResolutionExtensions.Get(IResolutionRoot root, Type service, String name, IParameter[] parameters) in c:\Projects\Ninject\ninject\src\Ninject\Syntax\ResolutionExtensions.cs:line 164
at Ninject.Extensions.Factory.Factory.InstanceResolver.Get(Type type, String name, Func`2 constraint, ConstructorArgument[] constructorArguments, Boolean fallback) in c:\Projects\Ninject\ninject.extensions.factory\src\Ninject.Extensions.Factory\Factory\InstanceResolver.cs:line 75
at Ninject.Extensions.Factory.StandardInstanceProvider.GetInstance(IInstanceResolver instanceResolver, MethodInfo methodInfo, Object[] arguments) in c:\Projects\Ninject\ninject.extensions.factory\src\Ninject.Extensions.Factory\Factory\StandardInstanceProvider.cs:line 78
at Ninject.Extensions.Factory.FactoryInterceptor.Intercept(IInvocation invocation) in c:\Projects\Ninject\ninject.extensions.factory\src\Ninject.Extensions.Factory\Factory\FactoryInterceptor.cs:line 57
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Castle.Proxies.IFooFactoryProxy.GetFoo()
最佳答案
naming of your method is triggering a convention such that the resulting generated factory is requesting an IFoo
named "Foo"但配置尚未使用该名称注册该类型的服务。
关于c# - 在 Ninject 中使用 ToFactory 时出现 ActivationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10479384/
我收到一个 ActivationException,说激活 IEventBroker 时出错。 MyDataSource 接受一个 IEventBroker 有一个参数。如果我不使用子内核,就没有问题
我不完全了解 Ninject 的工作原理,这就是为什么我在这里问这个问题以找出问题所在。 如果我在 ClaimsSecurityService 中创建一个空的构造函数,它就会被命中。 这是我的错误:
当我尝试在 Ninject 中使用 ToFactory 时,我得到 Ninject.ActivationException var test = new StandardKernel(); test.
我收到以下错误: Test method: BootStrapperTest.Can_Create_Alert_Management_Object threw exception: Ninject.
我使用自定义 JsonMediaTypeFormatter 来扩展请求中的数据。但是当我使用 GetInstance 方法时,格式化程序抛出异常。我做错了什么? 全局.asax: // Create
我很困惑为什么我在随机绑定(bind)中收到“Ninject.ActivationException:错误激活字符串没有可用的匹配绑定(bind),并且该类型不可自绑定(bind)”。如果我保留 IM
背景 嗨,所有 SO 观众。我通常是一名 Android 开发人员,但现在我正在开发一个针对 WPF 和 Android 的跨平台应用程序。话虽如此,实际上没有关于如何直接做我想做的事情的信息。因此,
我什至不知道从哪里开始解决这个问题,但是在尝试运行我的 ASP.NET MVC 应用程序时遇到了异常。 这是我得到的错误: [ActivationException: Error activating
我是基于 MVVM 的单元测试应用程序,它使用 prism 并使用模拟来测试 View 模型。我可以通过传递区域管理器和资源管理器的模拟对象来调用我的 viewmodel 类的构造函数,但是当控制进入
我有一个非常简单的 Web Api v2.2 自托管在 OWIN public class StartUp { public void Configuration(IAppBuilder ap
我尝试执行 here建议整合。不幸的是,我的集线器方法没有被调用。这个异常阻止它: SimpleInjector.ActivationException occured. HResult=-21462
我正在尝试创建一个“准系统”Web API 项目,该项目使用 OWIN 中间件、Ninject 依赖注入(inject),并最终托管在 IIS 中。我已按照文章“与 ASP.NET Web.API2、
我通过 nuget 安装了 Ninject,并在 NinjectMVC3 的 RegisterServices 方法(由 nuget 创建)中注册了我的绑定(bind)。按照我的代码: private
我是一名优秀的程序员,十分优秀!