使用ClassName作为参数



我有几个类,其中包含验证方法:ClientValidation, PaymentValidation等。计划是动态地构建一个方法列表,我将使用这些方法来验证记录。要做到这一点,我需要能够获得每个类中包含的方法列表。为此,我编写了以下行:

var methods = typeof( ClientValidation ).GetMethods();

如果我的所有方法都在ClientValidation类下,这将非常有效,但事实并非如此。我想要做的是能够动态地传入类名这样行看起来更像:

var dynamicClassName = GetClassNameMethod();
var methods = typeof( dynamicClassName ).GetMethods();

这可能吗?我该怎么做呢?

你可以这样做:

var methods = Type.GetType(full_class_name).GetMethods();

其中full_class_name是完整的类名(带命名空间)。例如:"ConsoleApplication1.Class1"。

如果你想使用类名而不使用命名空间(例如:"Class1"),您可以像这样在程序集中搜索这样的类:

var methods = Assembly.GetExecutingAssembly().GetTypes().First(x => x.Name == class_name).GetMethods();

其中class_name为类名,如"Class1"。

相关内容

  • 没有找到相关文章

最新更新