0

次の Windows ランタイム ソリューションのセットアップがあります。

私のEXEによって参照されるDLLで

public abstract class BaseClass {

    public BaseClass(Guid id, string name) {
        //...
    }

}

エグゼでは

public sealed class DerivedClass : BaseClass {

}

DLL には、BaseClass実行時に指定される のサブタイプを使用する別のクラスもあります。基本クラスにはコンストラクターがあるため、次のようにインスタンス化できると考えました。

//this._userType holds the type of DerivedClass
BaseClass foo = (BaseClass)Activator.CreateInstance(this._userType, id, name);

ただし、コンストラクターが見つからないことが通知されます。Typeだから私は行って、の方法を使用できると言った他の回答を見つけましGetConstructor()たが、それはWinRTには存在しないようです。プロパティはありDeclaredConstructorsますが、 で明示的に宣言されているコンストラクターのみをリストしていますDerivedClassDerivedClassこの特定のコンストラクター以外に何もする必要はないのでBaseClass、呼び出す明示的なコンストラクターを書き出すのは嫌ですbaseが、それが唯一のオプションである場合はお知らせください (このアプローチが機能することを確認しました)。

4

1 に答える 1