C#遍历调用相同函数的类
我有多个类,都位于一个不同的名称空间中。所有类都派生自相同的基类,都具有相同的函数,接受相同的参数。我希望能够遍历这些类,调用上述函数 我知道我可以通过以下方式获得课程列表:C#遍历调用相同函数的类,c#,loops,class,C#,Loops,Class,我有多个类,都位于一个不同的名称空间中。所有类都派生自相同的基类,都具有相同的函数,接受相同的参数。我希望能够遍历这些类,调用上述函数 我知道我可以通过以下方式获得课程列表: var validationClasses = Assembly.GetExecutingAssembly().GetTypes() .Where(t => t.Namespace == "Panther.Business.Shipping.Validate") .ToList(); 当然,我可
var validationClasses = Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.Namespace == "Panther.Business.Shipping.Validate")
.ToList();
当然,我可以遍历ValidationClass中的每个类
但我不知道如何实例化每个类的实例,并调用该函数
非常感谢任何方向。假设使用基类
ValidationBase
,您可以执行以下操作:
Type baseType=typeof(ValidationBase);
MethodInfo method=baseType.GetMethod(“MethodName”);
var validationClasses=Assembly.getExecutionGassembly()
.GetTypes()
其中(t=>t.IsSubclassOf(baseType));
foreach(ValidationClass中的t类型)
{
var instance=Activator.CreateInstance(t);
Invoke(instance,null);//必要时用参数数组替换'null'
}
请参见验证类
是类型的集合。您需要使用Acticator.CreateInstance
在该集合中创建类型的实例。您正在尝试做任何DI容器开箱即用的事情。虽然它可能是有益的教育目的,考虑使用DI。至少这将是更现实的情况。