c# - 如何以编程方式收集文件夹中 .cs 文件中的所有类并添加到列表中
问题描述
我在解决方案中有一个名为“Features”的文件夹。例如,该文件夹可以包含 500 个带有类的 .cs 文件。
在下面的示例中,我手动将这 500 个类中的 2 个放入列表中:
Features.testclass.cs
Features.testclass2.cs
我想知道如何以编程方式收集 Features 文件夹中那些 500.cs 文件中的所有类,并将它们添加到列表中,就像我在下面手动执行的示例一样?
请注意,我正在列表中保存每个类的新实例,因为我需要稍后调用这些类
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public interface IFace { String GetValue(); }
void GetClasses()
{
var MyList = new List<IFace>();
MyList.Add(new Features.testclass());
MyList.Add(new Features.testclass2());
}
}
}
解决方案
这是一个解决方案:
public interface IFace { String GetValue(); }
void GetClasses()
{
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
var MyList = new List<IFace>();
String nameSpace = "WindowsFormsApp1.Features";
List<String> namespacelist = new List<String>();
foreach (Type type in asm.GetTypes())
{
if (type.Namespace == nameSpace) //"WindowsFormsApp1.Features"
{
MyList.Add((IFace)Activator.CreateInstance(type));
}
}
}
推荐阅读
- ios - 遍历 JSON 数组并将坐标添加到地图
- wso2 - WSO2 身份服务器用户会话破坏端点
- html - 将图像移到另一个标签上方
- ruby-on-rails-5 - 从 Rails 5.1.4 升级到 Rails 6 时出现问题
- xml - XSD / XML 引用转义
- azure - ServiceBus Dequeue 触发消息 Unmarshalling Golang custom handler in azure:消息格式
- css - 从 HTML 标记访问 bulma.io 变量
- prolog - Prolog:从列表中创建二叉树
- r - 使用转换表 R 转换值
- r - 如何使用 purrr 旋转嵌套数据框?