반사

2016-12-15 3 views
0


에 의해 콘솔 응용 프로그램에서 웹 응용 프로그램 어셈블리 정보를 얻으려면 어떻게 컨트롤러/액션 메소드 이름 콘솔 응용 프로그램에서 MVC 웹 응용 프로그램

의 목록을 얻을 필요가있다.

그래서이 작업을 수행하기 위해 리플렉션을 사용합니다.
콘솔 응용 프로그램에 웹 응용 프로그램의 .dll을 참조했습니다.
그러나 콘솔 응용 프로그램 소스에서 웹 응용 프로그램의 어셈블리 정보를 가져올 수 없습니다. 프로젝트, AppDomain.CurrentDomain.GetAssemblies() 아무튼에서 어셈블리를 참조 한 순간에도 -반사

var check = AppDomain.CurrentDomain.GetAssemblies(); 
var assembly = AppDomain.CurrentDomain.GetAssemblies() 
.First(x =>x.ManifestModule.Name == "RedStar.WebApp.dll"); 


이 exceptipn 'System.InvalidOperationException' '순서가 일치하는 요소'가 사용 될 때까지 어셈블리가로드되지

답변

0

포함되어 있지 않습니다 던졌습니다 그것을 (아직) 포함시키지 마십시오.

명시 적으로 어셈블리를로드하려면 Assembly webapp =Assembly.Load("RedStar.WebApp")을 사용해야합니다. 특정 파일을로드 할 경우 Assembly.LoadFrom을 사용할 수 있지만 일부 unwanted side effects이있을 수 있습니다 - 어셈블리를로드하는이 방법은 어셈블리 이름이 아닌 파일 이름을 사용하는

참고.

+0

방금 ​​시도하고 작업했습니다. 고맙습니다 – mrkiyak