com-library を使用するコードを開発しています。クラスのインスタンスを作成しようとしています
Type t = Activator.CreateInstance("TypeID");
しかし、私はいつも= nullの型を取得できません。progid は既に Ole/COM Wever を調べましたが、正しく入力できたようです。何が問題になる可能性がありますか?
タイプID文字列を渡していますか?最初にProgIdからタイプオブジェクトを取得してみてください。
Type t = Type.GetTypeFromProgID(progID);
object obj = Activator.CreateInstance(t);
問題は、COMオブジェクトをそのようActivator
にインスタンス化するために使用できないことです(編集:GUIDを直接に渡していることを質問から理解したので、これを強調しています)。Activator.CreateInstance
通常、登録されたCOMクラスへの参照を追加します([参照の追加]ダイアログの[COM]タブから)。その後、他のクラスと同じようにCOMクラスを使用できます。
または、Strilloが言ったことを試してみてください:-)
ただし、私が提案した方法で実行すると、強い型が付けられたままになるという利点があります。