- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在搜索其他相关帖子,但没有找到任何内容,所以这里...
我有一个( super )简单的 Ninject 测试,它因 NullReferenceExcption 而失败,我找不到任何关于原因的信息。如果接口(interface)中定义了 C# 简化的属性访问器,就会发生这种情况,否则就可以了。如果我删除 get;放;它按预期工作的功能。
我的问题是我只是在做一些不应该起作用的事情 - 例如这与已弃用的字段注入(inject)功能有关吗?
整个(失败的)例子很短:
using System;
using Ninject;
namespace NinjectIFPropError
{
public interface IDummy
{
int Number {get;set;}
void Doit();
}
public class DummyClass : IDummy
{
public int Number {get;set;}
public void Doit()
{
Console.WriteLine("Doit");
}
}
class Program
{
public static void Main (string[] args)
{
IKernel kernel = new StandardKernel();
kernel.Bind<IDummy>().To<DummyClass>();
IDummy id = kernel.Get<IDummy>();
id.Doit();
}
}
}
我在 Ubuntu 11.10 上使用默认的 Mono 2.10.5 安装。 Ninject 是从 Ninject.org 下载的适用于 .Net 4.0 的 v2.2.1.0。
如有任何信息,我们将不胜感激。
/一个
我也附加了堆栈跟踪(很长):
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object
at Ninject.Infrastructure.Language.ExtensionsForMemberInfo.GetParentDefinition (System.Reflection.MethodInfo method, BindingFlags flags) [0x00000] in <filename unknown>:0
at Ninject.Infrastructure.Language.ExtensionsForMemberInfo.GetParentDefinition (System.Reflection.PropertyInfo property) [0x00000] in <filename unknown>:0
at Ninject.Infrastructure.Language.ExtensionsForMemberInfo.IsDefined (System.Reflection.PropertyInfo element, System.Type attributeType, Boolean inherit) [0x00000] in <filename unknown>:0
at Ninject.Infrastructure.Language.ExtensionsForMemberInfo.HasAttribute (System.Reflection.MemberInfo member, System.Type type) [0x00000] in <filename unknown>:0
at Ninject.Selection.Heuristics.StandardInjectionHeuristic.ShouldInject (System.Reflection.MemberInfo member) [0x00000] in <filename unknown>:0
at Ninject.Selection.Selector+<>c__DisplayClass3.<SelectPropertiesForInjection>b__2 (IInjectionHeuristic h) [0x00000] in <filename unknown>:0
at System.Linq.Enumerable.Any[IInjectionHeuristic] (IEnumerable`1 source, System.Func`2 predicate) [0x00000] in <filename unknown>:0
at Ninject.Selection.Selector.<SelectPropertiesForInjection>b__1 (System.Reflection.PropertyInfo p) [0x00000] in <filename unknown>:0
at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator35`1[System.Reflection.PropertyInfo].MoveNext () [0x00000] in <filename unknown>:0
at System.Collections.Generic.List`1[System.Reflection.PropertyInfo].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0
at System.Collections.Generic.List`1[System.Reflection.PropertyInfo].AddRange (IEnumerable`1 collection) [0x00000] in <filename unknown>:0
at Ninject.Selection.Selector.SelectPropertiesForInjection (System.Type type) [0x00000] in <filename unknown>:0
at Ninject.Planning.Strategies.PropertyReflectionStrategy.Execute (IPlan plan) [0x00000] in <filename unknown>:0
at Ninject.Planning.Planner+<>c__DisplayClass3.<GetPlan>b__1 (IPlanningStrategy s) [0x00000] in <filename unknown>:0
at Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map[IPlanningStrategy] (IEnumerable`1 series, System.Action`1 action) [0x00000] in <filename unknown>:0
at Ninject.Planning.Planner.GetPlan (System.Type type) [0x00000] in <filename unknown>:0
at Ninject.Activation.Providers.StandardProvider.Create (IContext context) [0x00000] in <filename unknown>:0
at Ninject.Activation.Context.Resolve () [0x00000] in <filename unknown>:0
at Ninject.KernelBase.<Resolve>b__7 (IContext context) [0x00000] in <filename unknown>:0
at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator27`2[Ninject.Activation.IContext,System.Object].MoveNext () [0x00000] in <filename unknown>:0
at System.Linq.Enumerable+<CreateCastIterator>c__Iterator17`1[NinjectIFPropError.IDummy].MoveNext () [0x00000] in <filename unknown>:0
at System.Linq.Enumerable.Single[IDummy] (IEnumerable`1 source, System.Func`2 predicate, Fallback fallback) [0x00000] in <filename unknown>:0
at System.Linq.Enumerable.Single[IDummy] (IEnumerable`1 source) [0x00000] in <filename unknown>:0
at Ninject.ResolutionExtensions.Get[IDummy] (IResolutionRoot root, Ninject.Parameters.IParameter[] parameters) [0x00000] in <filename unknown>:0
at NinjectIFPropError.Program.Main (System.String[] args) [0x00018] in /home/roger/Projects/NinjectIFPropError/Main.cs:38
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
at Ninject.Infrastructure.Language.ExtensionsForMemberInfo.GetParentDefinition (System.Reflection.MethodInfo method, BindingFlags flags) [0x00000] in <filename unknown>:0
at Ninject.Infrastructure.Language.ExtensionsForMemberInfo.GetParentDefinition (System.Reflection.PropertyInfo property) [0x00000] in <filename unknown>:0
at Ninject.Infrastructure.Language.ExtensionsForMemberInfo.IsDefined (System.Reflection.PropertyInfo element, System.Type attributeType, Boolean inherit) [0x00000] in <filename unknown>:0
at Ninject.Infrastructure.Language.ExtensionsForMemberInfo.HasAttribute (System.Reflection.MemberInfo member, System.Type type) [0x00000] in <filename unknown>:0
at Ninject.Selection.Heuristics.StandardInjectionHeuristic.ShouldInject (System.Reflection.MemberInfo member) [0x00000] in <filename unknown>:0
at Ninject.Selection.Selector+<>c__DisplayClass3.<SelectPropertiesForInjection>b__2 (IInjectionHeuristic h) [0x00000] in <filename unknown>:0
at System.Linq.Enumerable.Any[IInjectionHeuristic] (IEnumerable`1 source, System.Func`2 predicate) [0x00000] in <filename unknown>:0
at Ninject.Selection.Selector.<SelectPropertiesForInjection>b__1 (System.Reflection.PropertyInfo p) [0x00000] in <filename unknown>:0
at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator35`1[System.Reflection.PropertyInfo].MoveNext () [0x00000] in <filename unknown>:0
at System.Collections.Generic.List`1[System.Reflection.PropertyInfo].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0
at System.Collections.Generic.List`1[System.Reflection.PropertyInfo].AddRange (IEnumerable`1 collection) [0x00000] in <filename unknown>:0
at Ninject.Selection.Selector.SelectPropertiesForInjection (System.Type type) [0x00000] in <filename unknown>:0
at Ninject.Planning.Strategies.PropertyReflectionStrategy.Execute (IPlan plan) [0x00000] in <filename unknown>:0
at Ninject.Planning.Planner+<>c__DisplayClass3.<GetPlan>b__1 (IPlanningStrategy s) [0x00000] in <filename unknown>:0
at Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map[IPlanningStrategy] (IEnumerable`1 series, System.Action`1 action) [0x00000] in <filename unknown>:0
at Ninject.Planning.Planner.GetPlan (System.Type type) [0x00000] in <filename unknown>:0
at Ninject.Activation.Providers.StandardProvider.Create (IContext context) [0x00000] in <filename unknown>:0
at Ninject.Activation.Context.Resolve () [0x00000] in <filename unknown>:0
at Ninject.KernelBase.<Resolve>b__7 (IContext context) [0x00000] in <filename unknown>:0
at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator27`2[Ninject.Activation.IContext,System.Object].MoveNext () [0x00000] in <filename unknown>:0
at System.Linq.Enumerable+<CreateCastIterator>c__Iterator17`1[NinjectIFPropError.IDummy].MoveNext () [0x00000] in <filename unknown>:0
at System.Linq.Enumerable.Single[IDummy] (IEnumerable`1 source, System.Func`2 predicate, Fallback fallback) [0x00000] in <filename unknown>:0
at System.Linq.Enumerable.Single[IDummy] (IEnumerable`1 source) [0x00000] in <filename unknown>:0
at Ninject.ResolutionExtensions.Get[IDummy] (IResolutionRoot root, Ninject.Parameters.IParameter[] parameters) [0x00000] in <filename unknown>:0
at NinjectIFPropError.Program.Main (System.String[] args) [0x00018] in /home/roger/Projects/NinjectIFPropError/Main.cs:38
最佳答案
在 Mono 环境中运行 Ninject 时,您需要确保使用的是 Mono 构建。如果你去TeamCity build server您可以获得 Mono 2.0、3.5 和 4.0 构建的工件。请试用它们,看看您的问题是否已解决。
关于c# - 如果接口(interface)中有属性访问器,Ninject 将失败并出现 NullRef 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9211627/
有人在 monodroid 项目中使用 ninject 吗? 如果是这样,将不胜感激有关实现这一目标的任何指示/细节。 最佳答案 我还没有尝试在 Mono For Android 中使用 Ninjec
我找到了this article关于 Ninject 早期版本中的上下文变量。我的问题有两个方面。首先,如何使用 Ninject 2 获得这种行为?其次,上下文变量是否沿着请求链传递?例如,假设我想替
我有一个场景,只要一个对象上的方法返回 true,多个并发 Web 请求就应该重用一个对象。有问题的对象是线程安全的。 所以我需要当前范围内的对象来确定它是否仍在范围内。使用 Ninject 完成此任
我刚刚使用 Ninject 3 更新了我的应用程序。将 App_Start 中的文件从 NinjectMVC3 更改为 NinijectWebCommon.cs。移动了我的文件,更新了 DLLs..
我在 MVC4 应用程序中使用 Ninject 进行 DI 和 Ninject.MVC3 扩展,特别是版本 3.0.0.6。 阅读documentation在 Ninject 的 wiki 上,使用
如何绑定(bind)InitializerForXXX (非通用实现)到 IInitializer (通用接口(interface))使用 Ninject Conventions以便请求 IIniti
我正在开发一个框架扩展,它使用 Ninject 作为 IoC 容器来处理动态注入(inject),但是我在尝试解决如何实现这一点时遇到了一些麻烦。 我的框架的期望是您将传递 IModule(s)所以它
我确信这是一个愚蠢的问题,因为我假设答案是“当对象被 Ninject 实例化时”......但我想仔细检查...... 为了提供更多关于我为什么问这个问题的背景信息,我有一个实现 NinjectHtt
与其手动绑定(bind)每个类,不如推荐哪些方法和模式(如果有)来自动设置绑定(bind)? 例如,绝大多数绑定(bind)看起来像这样: Bind.To(); 一旦模块变大,您最终可能会得到 100
我试图找到一种将构造函数参数传递给子类的构造函数的方法。 这些对象是不可变的,所以我更喜欢使用构造函数参数。 我遇到的问题是 ConstructorArgument 不继承到子实例化,并且以下语句不可
我正在尝试为事件代理/消息代理的开发找到最新的 Ninject 扩展。 我至少可以找到 3 个:messagebroker , weakeventmessagebroker和 bbveventbrok
我有一个 WebApi 服务,我正在尝试使用 Ninject BindHttpFilter 添加身份验证。 使用 BindHttpFilter 允许我将身份验证过滤器绑定(bind)到特定属性。 Au
Autofac 自动为 Func 生成工厂;我什至可以传递参数。 public class MyClass { public MyClass(Func a, Func b) {
我有一个类需要为其类中的一个方法使用 IRepository。 理想情况下,我希望避免将这种依赖关系解析到类的构造函数中,因此我在 Ninject 中发现了方法级注入(inject),并且想知道这是如
我看到了枚举给定服务(类型)的绑定(bind)列表的方法,但我找不到返回已加载模块中绑定(bind)的所有内容列表的方法。我正在寻找类似Kernel::IEnumerable GetAllRegist
对于初学者,我正在使用这个模块: public class AutoMapperModule : NinjectModule { public override void Load()
我想知道 ninject 是否有可能拦截我类的私有(private)方法。我正在尝试进行一些 aop 编程以动态注入(inject)日志记录机制。 最佳答案 不幸的是,所有要拦截的方法都必须是virt
我是 Ninject 的新手,正在努力让这个测试通过。 (此测试通过 Autofac,但行为在 Ninject 中似乎有所不同)。 [Test] public void RegisterInstanc
我在一个小项目中使用过 Ninject,但现在正在将一个较大的 Web 应用程序转换为 mvc,并且需要有关使用 Ninject 的帮助。在新的解决方案中,我拥有 mvc 站点并将一些功能拆分到单独的
目前,我正在使用 ninject 执行以下绑定(bind)的命令模式: kernel.Bind>().To(); kernel.Bind>().To(); kernel.Bind>().To(); 我
我是一名优秀的程序员,十分优秀!