Ninject не распространяет исключение - PullRequest
0 голосов
/ 15 сентября 2011

Я использую Ninject для создания экземпляра класса, который имеет параметры конструктора.Этот класс проверяет значение его параметров и, если он недопустим, выдает исключение.Единственная проблема, с которой я сталкиваюсь, заключается в том, что Ninject проглатывает исключение и возвращает ноль для моего объекта.Я хотел бы, чтобы мое исключение распространялось как другие исключения в c #.Есть ли способ сделать это?

Код выглядит следующим образом (просто пример, это не фактический код)



    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
       }
    }


1 Ответ

2 голосов
/ 16 сентября 2011

Я не могу воспроизвести это поведение. По крайней мере, текущая выпущенная версия вызывает исключение для вызывающей стороны. Кроме того, ваш код даже не скомпилируется, так как null неоднозначен в качестве аргумента для ConstructorArgument

...