C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 158 を表示中)
■91439 / )  Re[3]: DLL動的リンク時のコンストラクタについて
□投稿者/ Hongliang (830回)-(2019/06/26(Wed) 19:46:26)
> ClassBの使用方法としては、メソッドの引数に参照渡しで値をもらってくるクラスになります。
> 
> 	ClassB b = null;
> 	Method1(ref b);
> 
> さらに質問になってしまいますが、
> ClassBのようなクラスをDLLから動的に扱う方法があれば教えていただけないでしょうか。
> 呼び出し側はClassBの型はわからない状態です。

outじゃなくてrefなんですか…nullを渡せばいいのであれば別にいいですけど。
一般的には次のような感じになるんじゃないでしょうか。out/refだとdynamicはたぶん無力ですね。

// dll
class A {
    public void GetB(ref B b) {
        b = new B();
    }
}
class B {
    internal B() { }
}

// 呼び出し側
object a = Activator.CreateInstance(typeA);
MethodInfo method = typeA.GetMethod("GetB"); // オーバーロードがあると面倒
object[] param = new object[] { null };
method.Invoke(a, param);
object b = param[0];

返信 編集キー/


管理者用

- Child Tree -