私には2つのクラスがあります:
class Car<T>
{
public string color { get; set; }
public virtual T features { get; set; }
public virtual void TestDrive();
}
class Toyota : Car<ToyotaFeatures>
{
public override ToyotaFeatures features { get; set; }
public override void TestDrive()
{
//Logic here...
}
}
これで、完全な文字列クラス名が作成されました。「MySol.MyProj.Toyota」
文字列名でクラスをインスタンス化してから、TestDrive()を実行します。
問題は、実行しようとするとActivator.CreateInstance(null, "MySol.MyProj.Toyota");
、ToyotaFeaturesクラスが渡されることを期待しているため、基本クラスにキャストしてtestDriveを実行できないことです。しかし、文字列クラス名のみを持つTestDrive()を実行したいだけです。
そして、私はそれを特定のタイプにキャストしたくありません。提供された文字列に基づいて実行するTestDrive()を決定できるように、基本タイプのみに適用されます。