Anda akan ingin menggunakan Type.GetType
metode ini.
Berikut ini contoh yang sangat sederhana:
using System;
using System.Reflection;
class Program
{
static void Main()
{
Type t = Type.GetType("Foo");
MethodInfo method
= t.GetMethod("Bar", BindingFlags.Static | BindingFlags.Public);
method.Invoke(null, null);
}
}
class Foo
{
public static void Bar()
{
Console.WriteLine("Bar");
}
}
Saya katakan simple karena sangat mudah untuk menemukan type cara ini yaitu internal ke assembly yang sama. Silakan lihat jawaban Jon untuk penjelasan lebih lengkap tentang apa yang perlu Anda ketahui tentang itu. Setelah Anda mengambil jenisnya, contoh saya menunjukkan kepada Anda bagaimana menjalankan metode tersebut.
Penggunaan sederhana:
Type typeYouWant = Type.GetType("NamespaceOfType.TypeName, AssemblyName");
Sampel:
Type dogClass = Type.GetType("Animals.Dog, Animals");
sumber
Agak terlambat untuk membalas tetapi ini seharusnya berhasil
Type myType = Type.GetType("AssemblyQualifiedName");
nama kualifikasi perakitan Anda harus seperti ini
"Boom.Bam.Class, Boom.Bam, Version=1.0.0.262, Culture=neutral, PublicKeyToken=e16dba1a3c4385bd"
sumber
Melalui Type.GetType Anda bisa mendapatkan informasi tipe. Anda dapat menggunakan kelas ini untuk mendapatkan informasi metode dan kemudian memanggil metode (untuk metode statis, biarkan parameter pertama kosong).
Anda mungkin juga memerlukan nama Assembly untuk mengidentifikasi jenisnya dengan benar.
sumber
Kita bisa gunakan
untuk mendapatkan nama kelas dan juga dapat membuat objeknya menggunakan
Activator.CreateInstance(type);
using System; using System.Reflection; namespace MyApplication { class Application { static void Main() { Type type = Type.GetType("MyApplication.Action"); if (type == null) { throw new Exception("Type not found."); } var instance = Activator.CreateInstance(type); //or var newClass = System.Reflection.Assembly.GetAssembly(type).CreateInstance("MyApplication.Action"); } } public class Action { public string key { get; set; } public string Value { get; set; } } }
sumber