3
내 새로운 프로젝트에 설치해서 Ninject에 노력하고있어 나는 convetions를 사용하여 assembilies를 스캔하고 싶지 그래서협약을 기반으로 Ninject에 바인딩 3.0
IFoo
자동
IBar
모든으로 해결됩니다 샘플 및 설명서에서이 접근법을 사용하는 방법을 설명합니다. Ninject 3 커널은 대신 .Load를 사용하십시오. 검색을 위해 Load를 사용하고 있다면 컨벤션으로 스캔을 구성하는 방법은 무엇입니까? https://github.com/ninject/ninject.extensions.conventions/wiki/What-is-configuration-by-convention
을하지만, 지금은 내 모듈을로드 할 수 없습니다 :
편집 나는 그것을 사용하여 작업을 얻을 수 있었다. 아래의 코드를 사용하고 있으며 아래 오류가 나타납니다.
IKernel kernel = new StandardKernel();
kernel.Bind(x => x
.FromAssembliesMatching("Crt.*.dll")
.SelectAllTypes()
.BindAllInterfaces()
);
kernel.Load("*.dll");
return kernel;
오류 :
Ninject.ActivationException was unhandled
Message=Error activating ITrainingEngine
More than one matching bindings are available.
Activation path:
1) Request for ITrainingEngine
Suggestions:
1) Ensure that you have defined a binding for ITrainingEngine only once.
Source=Ninject
StackTrace:
at Ninject.KernelBase.Resolve(IRequest request) in c:\Projects\Ninject\ninject\src\Ninject\KernelBase.cs:line 380
at Ninject.ResolutionExtensions.GetResolutionIterator(IResolutionRoot root, Type service, Func`2 constraint, IEnumerable`1 parameters, Boolean isOptional, Boolean isUnique) in c:\Projects\Ninject\ninject\src\Ninject\Syntax\ResolutionExtensions.cs:line 263
at Ninject.ResolutionExtensions.Get[T](IResolutionRoot root, IParameter[] parameters) in c:\Projects\Ninject\ninject\src\Ninject\Syntax\ResolutionExtensions.cs:line 37
at Crt.BlackBox.Train.Program.Run() in C:\code\Crimson\CRT\readmission\src\Crt.BlackBox\Crt.BlackBox.Train\Program.cs:line 54
at Crt.BlackBox.Train.Program.Main(String[] args) in C:\code\Crimson\CRT\readmission\src\Crt.BlackBox\Crt.BlackBox.Train\Program.cs:line 24
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException: