C#에서 동적을 사용하여 외부 API (DLL)에 정의 된 개체와 상호 작용하고 싶습니다. 그런 식으로 내 콘솔 앱에서 API를 참조하고 싶지 않습니다. 이게 가능합니까?DLL을 참조하지 않고 C#에서 동적 사용
dynamic obj1 = new ObjectDefinedInAPI();
컴파일러가
The type or namespace name 'objectDefinedInAPI' could not be found ...
어떤 생각을 잔소리에 유지 : 예를 들어
, 나는 같은 것을 사용?
감사
동적으로 어셈블리를로드하십시오. 키워드'dynamic'은 멤버 바인딩이 지연되고 런타임에 완료된다는 것을 나타냅니다. –
@HamletHakobyan이 지침을 제공함에 따라 여기 [참조 튜토리얼] (http://msdn.microsoft.com/en-us/library/25y1ya39(v=vs.110) .aspx)이 있습니다. 상호 운용하려는 어셈블리는 어느 시점에서 메모리에로드되어야합니다. Windows API를 생각하면'DllImport'를 사용해야합니다. 그것들을 메모리에로드합니다. –
이 경우 ServiceLocator 패턴과 서비스 인터페이스가 포함 된 라이브러리를 사용해야한다고 생각합니다. 이 라이브러리는 콘솔 응용 프로그램과 해당 인터페이스를 상속하는 클래스의 실제 구현을 포함하는 라이브러리 모두에 공통적이어야합니다. 그런 다음 DLL을 동적으로로드하고 ServiceLocator 컨테이너에 자동으로 등록되도록 할 수 있습니다. –