2011-12-31 2 views
0

Я совершенно новичок в Ninject и вижу исключение и не знаю, что делать. Может кто-то пожалуйста, помогите: -Исключение Ninject Null

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 
+0

Я думаю, что весь stacktrace недостаточно полезен. Вы должны указать код, как вы используете ninject. – adt

+0

Пожалуйста, добавьте больше контекста! Как настроено ваше ядро ​​NInject? Что такое код, который выполняется при получении исключения? – nemesv

+0

«NullReferenceException», выведенное из кода рамки, обычно является признаком ошибки в этой структуре, поскольку структура никогда не должна бросать «NullReferenceException» (поскольку NRE не очень полезны в раскрытии проблемы). – Steven

ответ

2

Из StackTrace я могу видеть, что вы используете некоторую Ninject 1.x.x версии. Текущая версия - 2.2.1, а из nuget вы можете установить кандидат на выпуск для версии 3.0.0. Ninject 1 больше не поддерживается.

Я рекомендую обновить либо до версии 2.2.1, либо 3.0.0. В противном случае вам нужно будет получить исходный код из github и самостоятельно отладить проблему и предоставить запрос на перенос, чтобы исправить эту проблему.

0

У меня была аналогичная проблема. В моем случае я использовал пакет Ninject 3.2.2.0 от Nuget on Mono и должен был вернуться назад к 3.2.0.0, как выяснилось из this ticket on the Ninject issue tracker. Похоже, что Ninject использует не опубликованный API в .Net путем отражения, и этого не существует в Mono.

Смежные вопросы