Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# Reflection: How to get class reference from string?

Tags:

c#

reflection

I want to do this in C#, but I don't know how:

I have a string with a class name -e.g: FooClass and I want to invoke a (static) method on this class:

FooClass.MyMethod(); 

Obviously, I need to find a reference to the class via reflection, but how?

like image 849
rutger Avatar asked Jun 25 '09 15:06

rutger


People also ask

Bahasa C digunakan untuk apa?

Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia.

C dalam Latin berapa?

C adalah huruf ketiga dalam alfabet Latin. Dalam bahasa Indonesia, huruf ini disebut ce (dibaca [tʃe]).

Bahasa C dibuat pertama kali oleh siapa dan tahun berapa?

Bahasa pemrograman C ini dikembangkan antara tahun 1969 – 1972 oleh Dennis Ritchie. Yang kemudian dipakai untuk menulis ulang sistem operasi UNIX. Selain untuk mengembangkan UNIX, bahasa C juga dirilis sebagai bahasa pemrograman umum.


1 Answers

You will want to use the Type.GetType method.

Here is a very simple example:

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");     } } 

I say simple because it is very easy to find a type this way that is internal to the same assembly. Please see Jon's answer for a more thorough explanation as to what you will need to know about that. Once you have retrieved the type my example shows you how to invoke the method.

like image 54
Andrew Hare Avatar answered Oct 08 '22 20:10

Andrew Hare