C# Reflection: How to get class reference from string


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:


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

Best Solution

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()

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.