파이썬에서이 COM 객체를 사용하려고 할 때 나는 모두 win32com.client.Dispatch("Myapp.Thing.1")
이고 메소드와 같은 것을 호출 할 수있는 객체를 제공합니다. .문자열에서 ID를 사용하여 C#에서 레거시 COM 객체를 동적으로 인스턴스화합니다.
나는 C#에서 이것을하고 싶어하고, 놀랍게도, 나는 어떻게 알아낼 수 없다. 내가 할 내가 자동으로 생성 된 COM 래퍼 중 하나를 사용하고 싶지 않아, 내가 들어갈 수없는 이유. 나는 늦은 구속력, 과거의 역동적 인 COM을 할 필요가있다.
이 작업을 시도했지만 invoke 호출에 Null 참조 예외가 발생합니다.
Type t = Type.GetTypeFromProgID("Myapp.Thing.1")
o = Activator.CreateInstance(t)
t.GetMethod("xyz").Invoke(o, args)
COM 개체를 이름으로로드하여 기본 방식으로 사용할 수있는 예제 코드가 이상적입니다.
Jason 먼저 Jason은 코드에 몇 가지 검사를 추가하고 t 또는 o가 null인지 식별 할 수 있습니까? 그렇다면 당신이 우리에게 말하면, 우리는 그것을 볼 수 있습니다. –
나는 그 장소에서 그 수표를 가지고 돌아 왔고, t도 o도 돌아 오지 않는다. 도와 줘서 고마워! – William
그리고 그 개체에 xyz 메서드가 있는지 확인 하시겠습니까? –