抽象クラスを暗示する基本プログラムがあります。
public abstract class AbstractClass
{
public AbstractClass (MyObject object1, MyOtherObject object2)
{
Console.WriteLine("This is the abstract class");
}
public abstract bool Function1();
<other abstract functions>
}
現在、さまざまなことを実行したいときに、アプリケーションの個別のバージョンをビルドしてコンパイルし、これらのことに対してさまざまな抽象クラスを実装しています。これは退屈だと思います。
このコード行を取得できるようにしたいと思います
new MySuperSpecialClassOfThings(param1, (MyObject obj1, MyOtherObject obj2) =>
{
return new NotAnAbstractClass(obj1, obj2);
}, true);
そしてそれを次のようなものに変更します:
new MySuperSpecialClassOfThings(param1, (MyObject obj1, MyOtherObject obj2) =>
{
return new System.Activator.CreateInstance(Type.GetType(config.NonAbstractClassName), new object[] { obj1, obj2 });
}, true);
config.NonAbstractClassName
構成ファイルで提供される文字列はどこにありますか。ただし、これは次のエラーで失敗します。
'System.Activator.CreateInstance(System.ActivationContext, string[])' is a 'method' but is used like a 'type'
obj1
とobj2
は文字列ではありません。それらはクラスです。
これどうやってするの?