0

com-library を使用するコードを開発しています。クラスのインスタンスを作成しようとしています

Type t = Activator.CreateInstance("TypeID"); 

しかし、私はいつも= nullの型を取得できません。progid は既に Ole/COM Wever を調べましたが、正しく入力できたようです。何が問題になる可能性がありますか?

4

3 に答える 3

5

タイプID文字列を渡していますか?最初にProgIdからタイプオブジェクトを取得してみてください。

Type t = Type.GetTypeFromProgID(progID);
object obj = Activator.CreateInstance(t);
于 2012-03-20T13:37:37.117 に答える
-2

問題は、COMオブジェクトをそのようActivatorにインスタンス化するために使用できないことです(編集:GUIDを直接に渡していることを質問から理解したので、これを強調しています)。Activator.CreateInstance

通常、登録されたCOMクラスへの参照を追加します([参照の追加]ダイアログの[COM]タブから)。その後、他のクラスと同じようにCOMクラスを使用できます。

または、Strilloが言ったことを試してみてください:-)

ただし、私が提案した方法で実行すると、強い型が付けられたままになるという利点があります。

于 2012-03-20T13:38:13.357 に答える