Ninject カーネル バインディングは次のようになります。
以下のような XML を作成します。
<module name="myXmlConfigurationModule">
<bind service="MyNamespace.IMyService, MyAssembly"
to="MyNamespace.MyServiceImplementation, MyAssembly" />
<bind service="MyNamespace.IMyOtherService, MyAssembly"
to="MyNamespace.MyOtherServiceImplementation, MyAssembly" />
</module>
次にコード:-
using Ninject;
enter code here
class ABC
{
public void CallingMethodUsingNinject()
{
private IKernel kernel= new StandardKernel();
kernel.Load("yourXmlFileName.xml");
bool ismodule = kernel.HasModule("myXmlConfigurationModule");//To Check The module
if(ismodule )
{
IMyService MyServiceImplementation = kernel.Get<IMyService>();
MyServiceImplementation.YourMethod();
}
}
}
XML ファイルのプロパティ設定が原因で問題が発生する可能性があるため、xml ファイルの設定を変更する必要があります。IMyService のアクティブ化でエラーが発生しました 一致するバインディングが利用できず、型が自己バインド可能ではありません。解決策: - 出力ディレクトリに自動的にコピーできるように、この xml ファイルの [出力ディレクトリにコピー] プロパティを [新しい場合はコピー] に設定することを忘れないでください。
詳細については、https ://www.packtpub.com/sites/default/files/9781782166207_Chapter_02.pdf をお読みください。