クラス名を含むデータベースから文字列を取得しています(例: "w_task1"
)。データベースからスクリプト名を取得すると、どのスクリプトかわからないので、w_task1 t = new w_task1()
を書くことはできません。クラス名を含む文字列からクラスファイル名を呼び出す
代わりに、私はそれが(value of class name) t = new (value of class name)()
の行に沿っていたいと思っています。
開こうとしているクラス名は、w_task1.cs
- w_task25
です。私は全体を使って試してみた
:
Type type = Type.GetType("w_task1");
object o = Activator.CreateInstance(type);
...しかし、型がnullのプログラムのRANに等しいです。
クラスの種類を知らなくても、文字列からクラスを開くにはどうすればよいですか?
ファイルを開くときのように「クラスを開く」ことはありません。アセンブリをロードし、実行時の型情報でクラスをインスタンス化します。 C#はPythonやいくつかのスクリプト言語のようではありません。 –