0

Ninjectを使用して、コンストラクタパラメータを持つクラスのインスタンスを作成しています。このクラスはパラメータの値をチェックし、有効でない場合は例外をスローします。私が直面している唯一の問題は、Ninjectが例外を呑み込んでオブジェクトにnullを返すことです。私はC#で他の例外のように伝えたいと思っています。これを行う方法はありますか?Ninjectは例外を伝播しません

コードが

 


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

 

答えて

2

私はこの現象を再現することはできません(これは、実際のコードではありません、単なる一例)このようになります。少なくとも現在リリースされているバージョンでは、呼び出し元に例外がスローされます。さらに、コンストラクタの引数としてnullがあいまいであるため、コードはコンパイルされません。

+0

最新のバージョンに更新しようとします。コードは、私が質問を書いている間に出てきた一例にすぎず、実際のコードではありません...しかし、それを指摘してくれてありがとう、私はそれを修正します – rarrosi

関連する問題