동일한 실행 파일 (플러그인)에 대해 서로 다른 DAL을 사용하기 위해 ninject xml 확장을 사용하고 있습니다. 내 생각은 ninject xml 파일을 사용하여 주 응용 프로그램의 하위 폴더에 모든 DLL (DLL)을 저장하는 것이 었습니다.Ninject XML Extension - Plugin architecture
문제는 ninject가 xml에서 참조 된 바인딩을 찾을 수 없다는 것입니다. 그것은 내가 주 응용 프로그램 (.exe)의 동일한 폴더에 dll을 복사하는 경우에만 작동합니다.
나는 커널에게Assembly assembly = Assembly.LoadFrom(dll);
AppDomain.CurrentDomain.Load(assembly.GetName());
Kernel.Load(xmlFile);
하지만 여전히 나던 작업을로드하기 전에 DLL을로드했습니다. (오류 : "을 couldnt 해결 형 '합니다 MyType'속성 '에'에 정의 된") 사람이 다른 폴더에서 Ninject에-XML 파일 또는로드 유형에 콘크리트 폴더를 참조 할 수있는 방법을 알고 있나요
그 수 ninject-xml 확장자를 사용하여 해결할 수 있습니까?
Ninject는 하위 폴더 (./Plugins/MyType.dll)에있는 dll에서 선언 할 때 유형을 해석 할 수없는 것 같습니다. dll을 메인 폴더에 놓았을 때 잘 동작합니다. 두 경우 모두 dll은 주 프로젝트에서 참조되지 않으며 동적으로로드하는 것이 좋습니다. – Morvader
사용자 지정 폴더는 .NET 어셈블리 해상도 조회의 일부가 아닙니다. http://stackoverflow.com/questions/4145728/what -is-the-net-folder-search-hierarchy - 또한 실제 오류가 무엇인지 아직 말하지 않았습니다. "여전히 작동하지 않는다"고 말하면 우리가 겪었던 오류에 대해 알려주지 않습니다. 아마도 xml을 사용하여로드 할 라이브러리를 지정하고 컨벤션 확장 프로그램을 사용하여 어셈블리에서 선택하고 바인딩을 만드는 경우 문제를 해결할 수있는 방법이있을 수 있습니다. –
문제는 ninject가 xml에 지정된 바인딩을 해결할 수 없다는 것입니다 : "Couldnt resolver type MyType이 'to'속성"에 정의되었습니다. 어쨌든, 해상도에 대한 링크를 찾아 주셔서 고맙습니다. 문제에 대한 "probing"요소를 설정에 추가했습니다. 답으로 쓰고 싶으면 받아 들일 것입니다. 감사!. – Morvader