次の 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
ますが、 で明示的に宣言されているコンストラクターのみをリストしていますDerivedClass
。 DerivedClass
この特定のコンストラクター以外に何もする必要はないのでBaseClass
、呼び出す明示的なコンストラクターを書き出すのは嫌ですbase
が、それが唯一のオプションである場合はお知らせください (このアプローチが機能することを確認しました)。