Trong Python, khi tôi muốn sử dụng đối tượng COM này, tất cả những gì tôi làm là win32com.client.Dispatch("Myapp.Thing.1")
và nó mang lại cho tôi một đối tượng mà tôi có thể gọi phương thức và .Khởi tạo đối tượng COM cũ trong C# động (sử dụng ID của nó trong chuỗi)
Tôi muốn làm điều này trong C# và, thật đáng kinh ngạc, tôi dường như không thể tìm ra cách. Tôi làm không phải muốn sử dụng một trong những trình bao bọc COM được tạo tự động, vì lý do tôi không thể tham gia. Tôi cần phải làm muộn, COM động của thời gian qua.
Tôi đã thử làm điều này, nhưng tôi nhận được Null Ref Exception trên cuộc gọi gọi.
Type t = Type.GetTypeFromProgID("Myapp.Thing.1")
o = Activator.CreateInstance(t)
t.GetMethod("xyz").Invoke(o, args)
Bất kỳ mã ví dụ nào có thể tải lên đối tượng COM theo tên và sử dụng theo cách cơ bản sẽ là lý tưởng.
Jason trước hết bạn có thể thêm một số kiểm tra vào mã của mình và xác định xem t hoặc o là null không? nếu vậy và nếu bạn nói với chúng tôi, thì chúng ta có thể bắt đầu xem xét nó. –
Tôi chỉ chạy lại với những kiểm tra tại chỗ, không t cũng không trở lại null. Cám ơn rất nhiều về sự giúp đỡ của bạn! – William
và bạn có chắc chắn rằng phương thức xyz tồn tại trên đối tượng đó không? –