一尘不染

C#反思:如何从字符串获取类引用?

c#

我想用C#做到这一点,但是我不知道怎么做:

我有一个带有类名-eg:的字符串,FooClass并且我想在该类上调用一个(静态)方法:

FooClass.MyMethod();

显然,我需要通过反射找到对该类的引用,但是如何呢?


阅读 414

收藏
2020-05-19

共1个答案

一尘不染

您将要使用该Type.GetType方法。

这是一个非常简单的示例:

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

我之所以说 简单
,是因为以这种方式很容易找到同一程序集内部的类型。请参阅乔恩的答案,以获取有关您需要了解的更详尽的解释。检索类型后,我的示例将向您展示如何调用该方法。

2020-05-19