DI 프레임 워크로 Ninject를 사용중인 MVC4 프로젝트가 있습니다. 내가 겪고있는 문제는 필자의 주요 웹 프로젝트가 다른 모든 프로젝트를 참조하는 것을 원하지 않으므로 내 구현에서 DI 바인딩을 분리하려고 시도하는 것입니다. 그때 나는 내 웹 프로젝트에서 동적으로 DLL을로드참조되지 않은 dll MVC Ninject로드
public class WebModuleBindings : NinjectModule
{
public override void Load()
{
Bind<IStaticDataRepository>().To<StaticDataRepository>();
}
}
: 내가 실행할 때이 잘 작동
kernel.Load(bindingDll);
나는 Ninject에 모듈을 포함하는 별도의 프로젝트라는 바인딩을 만들려고했다 로컬로하지만 msbuild를 사용하고 내 응용 프로그램을 배포 할 때 바인딩 프로젝트 dll은 아무데도 참조되지 않으므로 포함되지 않습니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
프로젝트 참조로 추가하고 '로컬 복사'를 'true'로 설정하지 않는 이유는 무엇입니까? 어느 쪽이든 어셈블리가 올바른 폴더에 배포되지 않기 때문에 의심의 여지가 없습니다. 배포 프로세스에서이를 고려해야합니다. –
bindings 프로젝트에 대한 참조를 추가하면 웹 프로젝트는 모든 프로젝트를 간접적으로 참조하므로 순환 참조로 인해 다른 프로젝트가 내 웹 프로젝트를 참조 할 수 없다는 것을 의미합니다. 평소입니까? – TJF