Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#遍历调用相同函数的类_C#_Loops_Class - Fatal编程技术网

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。至少这将是更现实的情况。