0

3日目は私の問題を解決しようとしましたが、うまくいきません((以下は私のFunnyWorld3.csファイルです。私はこのコンポーネントを登録しました。ここでは問題ありません

[assembly: AssemblyKeyFile("Keys.snk")]
public interface IFunnyWorld3
{
    void SayHello(String param);
};

[
  ClassInterface(ClassInterfaceType.AutoDual)
]

public class FunnyWorld3 : IFunnyWorld3
{   
    public void SayHello(String param)
    {
        MessageBox.Show(param, "FunnyWorld::SayHello metnod was invoked");
    }
};

次に、コードを使用して c# プロジェクトを作成しました。

Type comType = Type.GetTypeFromProgID("FunnyWorld3", true);
object comObj = Activator.CreateInstance(comType)

次は何ですか?プロジェクトで SayHello メソッドを呼び出すにはどうすればよいですか? 助けてください((

4

2 に答える 2

1

IFunnyWorld3メソッドを呼び出すには、メソッドを定義する型に変換する必要があります。

IFunnyWorld3 fw = (IFunnyWorld3)comObj;
fw.SayHello("message");
于 2013-03-15T21:37:15.947 に答える
0

キャスティングはどうですか?への参照を取得した場合は、objectそれをキャストできるはずです。

IFunnyWorld3 fw3 = (IFunnyWorld3) comObj;

その後、メソッドを呼び出します。お気に入り

fw3.SayHello("Hello, World");
于 2013-03-15T21:37:44.113 に答える