리플렉션을 사용하여 성의 인터페이스를 해결할 때 작은 문제가 발생했습니다.Castle Windsor 리플렉션을 통한 인터페이스 해상도
내가 인터페이스 IService
를 가지고 있고, 이런 식으로 해결할 수 있습니다 말할 수 있습니다 :
var service = wc.Resolve<IService>();
이 예상대로 작동합니다,하지만 난 반사를 통해 메소드를 호출 할이 같은 수행 할 수
MethodInfo method = typeof(WindsorContainer).GetMethod("Resolve",new Type[] {});
MethodInfo generic = method.MakeGenericMethod(typeof(IService));
var service = generic.Invoke(wc,new object[]{});
잘 작동합니다. 이제 리플렉션을 사용하여 다시 작성해야 할 유형을 선택하려고한다고 상상해보십시오.
Type selectedType = assembly.GetType("myProject.IService")
그리고 다음과 같이 그것을 호출 할 :
MethodInfo method = typeof(WindsorContainer).GetMethod("Resolve",new Type[] {});
MethodInfo generic = method.MakeGenericMethod(selectedType);
var service = generic.Invoke(wc,new object[]{});
내가이 성 오류 :
"No component for supporting the service myProject.IService was found"
selectedType의 유형은 올바른 것으로 보인다,하지만 문제가있다 .
누구든지 resolve 메소드를 올바르게 호출 할 수 있는지 알고 있습니까?
BTW MakeGenericMethod(typeof(selectedType)
가 컴파일되지 않습니다.
미리 감사드립니다.
container.Resolve (selectedType) 같은 오류가 발생합니다. 비 제너릭 메소드에 대한 포인터를 보내 주셔서 감사합니다. – jheppinstall