簡體   English   中英

Ninject Null引用異常

[英]Ninject Null reference exception

我是Ninject的新手,我看到一個例外,不知道該怎么做。 有人可以幫忙: -

Object reference not set to an instance of an object.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

[NullReferenceException: Object reference not set to an instance of an object.]
   System.Object.GetType() +0
   Ninject.Core.Creation.Providers.InjectionProviderBase.GetValueFromInlineArgument(IContext context, ITarget target) in \Ninject\src\Core\Creation\Providers\InjectionProviderBase.cs:139
   Ninject.Core.Creation.Providers.InjectionProviderBase.ResolveConstructorArguments(IContext context, ConstructorInjectionDirective directive) in \Ninject\src\Core\Creation\Providers\InjectionProviderBase.cs:109
   Ninject.Core.Creation.Providers.InjectionProviderBase.CallInjectionConstructor(IContext context) in \Ninject\src\Core\Creation\Providers\InjectionProviderBase.cs:79
   Ninject.Core.Creation.Providers.InjectionProviderBase.Create(IContext context) in \Ninject\src\Core\Creation\Providers\InjectionProviderBase.cs:60
   Ninject.Core.Activation.ActivatorBase.Create(IContext context, Object& instance) in \Ninject\src\Core\Activation\ActivatorBase.cs:114
   Ninject.Core.Behavior.BehaviorBase.CreateInstance(IContext context, Object& instance) in \Ninject\src\Core\Behavior\BehaviorBase.cs:102
   Ninject.Core.Behavior.TransientBehavior.Resolve(IContext context) in \Ninject\src\Core\Behavior\TransientBehavior.cs:55
   Ninject.Core.KernelBase.ResolveInstance(Type service, IContext context, Boolean isEagerActivation) in \Ninject\src\Core\KernelBase.cs:566
   Ninject.Core.KernelBase.Get(Type type, IContext context) in \Ninject\src\Core\KernelBase.cs:278
   Ninject.Core.Resolution.Resolvers.StandardResolver.ResolveInstance(IContext outerContext, IContext innerContext) in \Ninject\src\Core\Resolution\Resolvers\StandardResolver.cs:54
   Ninject.Core.Resolution.Resolvers.ResolverBase.Resolve(IContext outerContext, IContext innerContext) in \Ninject\src\Core\Resolution\Resolvers\ResolverBase.cs:80
   Ninject.Core.Creation.Providers.InjectionProviderBase.ResolveConstructorArguments(IContext context, ConstructorInjectionDirective directive) in \Ninject\src\Core\Creation\Providers\InjectionProviderBase.cs:119
   Ninject.Core.Creation.Providers.InjectionProviderBase.CallInjectionConstructor(IContext context) in \Ninject\src\Core\Creation\Providers\InjectionProviderBase.cs:79
   Ninject.Core.Creation.Providers.InjectionProviderBase.Create(IContext context) in \Ninject\src\Core\Creation\Providers\InjectionProviderBase.cs:60
   Ninject.Core.Activation.ActivatorBase.Create(IContext context, Object& instance) in \Ninject\src\Core\Activation\ActivatorBase.cs:114
   Ninject.Core.Behavior.BehaviorBase.CreateInstance(IContext context, Object& instance) in \Ninject\src\Core\Behavior\BehaviorBase.cs:102
   Ninject.Core.Behavior.TransientBehavior.Resolve(IContext context) in \Ninject\src\Core\Behavior\TransientBehavior.cs:55
   Ninject.Core.KernelBase.ResolveInstance(Type service, IContext context, Boolean isEagerActivation) in \Ninject\src\Core\KernelBase.cs:566
   Ninject.Core.KernelBase.Get(Type type, IContext context) in \Ninject\src\Core\KernelBase.cs:278
   Ninject.Core.Resolution.Resolvers.StandardResolver.ResolveInstance(IContext outerContext, IContext innerContext) in \Ninject\src\Core\Resolution\Resolvers\StandardResolver.cs:54
   Ninject.Core.Resolution.Resolvers.ResolverBase.Resolve(IContext outerContext, IContext innerContext) in \Ninject\src\Core\Resolution\Resolvers\ResolverBase.cs:80
   Ninject.Core.Activation.Strategies.FieldInjectionStrategy.Initialize(IContext context, Object& instance) in \Ninject\src\Core\Activation\Strategies\FieldInjectionStrategy.cs:59
   Ninject.Core.Activation.ActivatorBase.Create(IContext context, Object& instance) in \Ninject\src\Core\Activation\ActivatorBase.cs:130
   Ninject.Core.KernelBase.InjectExistingObject(Object instance) in \Ninject\src\Core\KernelBase.cs:599
   Ninject.Core.KernelBase.Inject(Object instance) in \Ninject\src\Core\KernelBase.cs:288
   Ninject.Framework.Web.KernelContainer.Inject(Object instance) in \Ninject\src\Framework\Web\KernelContainer.cs:69
   Ninject.Framework.Web.UserControlBase.RequestActivation() in \Ninject\src\Framework\Web\UserControlBase.cs:41
   Ninject.Framework.Web.UserControlBase.OnInit(EventArgs e) in \Ninject\src\Framework\Web\UserControlBase.cs:33
   System.Web.UI.Control.InitRecursive(Control namingContainer) +143
   System.Web.UI.Control.InitRecursive(Control namingContainer) +391
   System.Web.UI.Control.InitRecursive(Control namingContainer) +391
   System.Web.UI.Control.InitRecursive(Control namingContainer) +391
   System.Web.UI.Control.InitRecursive(Control namingContainer) +391
   System.Web.UI.Control.InitRecursive(Control namingContainer) +391
   System.Web.UI.Control.InitRecursive(Control namingContainer) +391
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1477

從堆棧跟蹤中我可以看到你正在使用一些Ninject 1.xx版本。 當前版本是2.2.1,您可以從nuget安裝3.0.0版本的候選版本。 Ninject 1不再維護。

我建議更新到2.2.1或3.0.0。 否則你將不得不從github獲取源代碼並自己調試問題,並提供拉取請求來解決問題。

我有一個類似的問題。 在我的情況下,我使用Nuget on Mono的Ninject 3.2.2.0軟件包並且必須回滾到3.2.0.0,因為我從Ninject問題跟蹤器上的這張票中發現了。 看起來Ninject通過反射在.Net中使用了未發布的API,而這在Mono中並不存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM