我正在使用Ninject创建一个具有构造函数参数的类实例。此类检查它的参数值,如果它无效,则抛出异常。我面临的唯一问题是Ninject吞下异常并为我的对象返回null。我想像c#中的其他异常一样传播我的excpetion。有没有办法做到这一点?
代码看起来像这样(只是一个例子,这不是实际的代码)
public class Module : NinjectModule
{
public override void Load()
{
Bind<IMyClass>().To<MyClass>();
}
}
public class MyClass : IMyClass
{
public MyClass(object value)
{
if(value == null)
throw new ArgumentNullException("value");
}
}
public class Program
{
public void Method()
{
object myObject = null;
IMyClass instance = GetKernel().
Get<IMyClass>(new ConstructorArgument("value", myObject));
// here the instance variable is null and my
// exception has been swallowed
}
}
答案 0 :(得分:2)
我无法重现此行为。至少当前发布的版本会将异常抛出给调用者。此外,您的代码甚至不会编译,因为null与ConstructorArgument
的参数不明确