런타임에 다른 응용 프로그램에서 dll을로드하려고하지만 동시에 dll에 구현 된 클래스의 인스턴스를 만들어야합니다. 할 수 있을까요? 내가 런타임에 DLL을로드 할 수 있고 그들에 대한 몇 가지 예제가 있지만 어떻게 DLL을로드하지 않고 클래스를 호출 할 수 있을까? 컴파일하지 않을 거지?.Net에서 런타임에 dll을로드하고 클래스를 만듭니다.
답변
런타임에 dll을로드 할 수 있습니다.
같은:
//load assembly
var ass = Assembly.LoadFile("ADll.dll");
//get types from assemblt
var typesInAssembly = ass.GetTypes();
var type = typesInAssembly.First(/*select one*/);
//create instance
var object = Activator.CreateInstance(type, new object [] { "arguments" });
고마워요. 새 객체의 속성을 어떻게 부르겠습니까? object.MyProperty를 사용할 수 없습니다, 맞습니까? – NewDTinStackoverflow
물론 아래의 호출 메소드와 같은 방법으로 호출 할 수 있습니다. 그냥 GetProperties를 사용 –
한 번 더 질문,로드되는 dll이 다른 dll을 필요로하는 경우, 여러 번 dll을 동시에로드 할 수 있습니까? 그것은 작동하지 않는 것 같아요 .... – NewDTinStackoverflow
컴파일됩니다. 가장 쉬운 방법은 앱과로드 된 dll과의 공용 인터페이스를 만드는 것입니다. 이 일을하는 데 뜨거운 당신은 여기에서 찾을 수 있습니다 : C# - Correct Way to Load Assembly, Find Class and Call Run() Method.
그러나 당신은 당신이 CreateInstance
, 다음 (예 : 모든 방법입니다 아래) 당신이 필요로하는 모든 방법을 찾을 수 있습니다 여전히 공통 인터페이스가없는 경우이 같은 Invoke
을 사용하여 선택 하나를 호출 한 후
MethodInfo[] methodInfos = Type.GetType(selectedObjcClass) .GetMethods(BindingFlags.Public | BindingFlags.Instance);
을 그리고 :
를method.Invoke(selectedObjcClass, params...);
- 1. 런타임에 클래스를 만들고 .NET에서 사용하십시오?
- 2. .NET에서 설치 패키지 런타임을 만듭니다.
- 3. Sidekiq가 런타임에 대기열을 만듭니다.
- 4. .NET에서 DLL은 런타임에 필요할 때로드됩니다.
- 5. .NET에서 런타임에 클래스의 존재를 감지하는 방법은 무엇입니까?
- 6. dll을로드하고 Windows 서비스로 호스트하십시오.
- 7. .net에서 런타임에 개체에 속성을 추가하는 방법?
- 8. 런타임에 Java 클래스를 변경하십시오.
- 9. 런타임에 클래스를 생성하십시오.
- 10. 런타임에 selectOneMenu에 대한 변환기를 만듭니다.
- 11. 실제로 런타임에 wsdl을 사용하여 연결을 만듭니다.
- 12. .NET에서 절의 런타임에 동적으로 설정 유형
- 13. . NET에서 런타임에 워크 플로를 만들 수있는 방법
- 14. .NET에서 런타임에 속성 유형을 정의하는 방법은 무엇입니까?
- 15. .NET에서 CSSMinify 클래스를 사용하려고 시도합니다.
- 16. 파일에서 런타임에 클래스를 생성하는 방법
- 17. 런타임에 서브 클래스를 동적으로 생성합니다.
- 18. 런타임에 생성 된 클래스를 Deserialize
- 19. 플렉스는 런타임에 CSS 클래스를 설정합니다.
- 20. Java에서 런타임에 Groovy 클래스를 컴파일하십시오.
- 21. 리플렉션을 통해 런타임에 클래스를 인스턴스화합니다.
- 22. VB.NET에서 런타임에 클래스의 인스턴스 객체 변수를 만듭니다.
- 23. MVC 4 엔티티의 클래스를 만듭니다.
- 24. 동적으로 네임 스페이스가없는 클래스를 만듭니다.
- 25. Android에서 OverlayItem의 하위 클래스를 만듭니다
- 26. JsDoc이 클래스를 두 배로 만듭니다.
- 27. 런타임에 사용 가능한 클래스를 얻는 방법
- 28. .NET에서 런타임에 C# 코드를 늦추기위한 가장 침해적인 방법은 무엇입니까?
- 29. 하나의 형식을 가지고있는 DLL을로드하고 exe 파일을 생성하는 다른 프로젝트에서 DLL을로드하고 싶습니다.
- 30. 내 DLL을로드하고 디버그하는 프로세스에 연결하는 방법
가능한 복제 [런타임에로드 조립 및 생성 클래스 인스턴스 (http://stackoverflow.com/questions/1803540/load-assembly-at-runtime-and-create- 클래스 방법 : – Vamsi
[방법 : 응용 프로그램 도메인에 어셈블리로드] (http://msdn.microsoft.com/en-us/library/25y1ya39.aspx) –
[방법 : 응용 프로그램 도메인 언로드] (http : //msdn.microsoft.com/en-us/library/c5b8a8f9.aspx) –