我有几个包含验证方法的类:ClientValidation,PaymentValidation等。计划是动态构建我将用于验证记录的方法列表。为此,我需要能够获得每个类中包含的方法的列表。为此,我写了以下一行:
var methods = typeof( ClientValidation ).GetMethods();
如果我的所有方法都在ClientValidation类下,那么这很有效,但它们不是。我想要做的是能够动态传递类名,这样行可能看起来更像:
var dynamicClassName = GetClassNameMethod();
var methods = typeof( dynamicClassName ).GetMethods();
这可能吗?我该怎么做?
答案 0 :(得分:1)
你可以这样做:
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"。