Ninject Kernel Bindung ist wie folgt: -
XML erstellen, wie unten: -
<module name="myXmlConfigurationModule">
<bind service="MyNamespace.IMyService, MyAssembly"
to="MyNamespace.MyServiceImplementation, MyAssembly" />
<bind service="MyNamespace.IMyOtherService, MyAssembly"
to="MyNamespace.MyOtherServiceImplementation, MyAssembly" />
</module>
Dann Code: -
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();
}
}
}
Einige Sie Problem konfrontiert können aufgrund XML-Datei Eigenschaftseinstellungen müssen also Ihre XML-Dateieinstellungen ändern. Fehler beim Aktivieren von IMyService Es sind keine übereinstimmenden Bindungen verfügbar, und der Typ ist nicht selbstbindbar. Lösung: -Nicht vergessen, die kopieren Ausgabe Directory-Eigenschaft dieser XML-Datei zu setzen, wenn neuere zu kopieren, so dass es automatisch
Für mehr zum Ausgabeverzeichnis kopiert werden: -Lesen https://www.packtpub.com/sites/default/files/9781782166207_Chapter_02.pdf
AssemblyBeinhaltenIhrTyp? – barteloma
Assembly, in dem 'MyNamespace.MyService' implementiert ist. – YK1
Warum wird es nicht empfohlen? Es sieht besser mit XML aus, weil Sie Ihr Projekt nicht neu kompilieren müssen – Marc