首页 > 解决方案 > 动态读取项目文件夹中的类

问题描述

我有一个 VS 项目,我需要动态读取项目文件夹中的类名,以便实例化它们。我可以读取文件名,但我必须解析内容,因为文件中的类名可能与文件名不匹配。有没有更简单的方法?

标签: c#visual-studio

解决方案


无需遍历源代码文件,只需使用反射列表遍历程序集中的所有类。然后,您可以根据需要实例化每个类。

string mynamespace = "FantasticBeasts";

var q = from t in Assembly.GetExecutingAssembly().GetTypes()
        where t.IsClass && t.Namespace == mynamespace
        select t;

https://docs.microsoft.com/en-us/dotnet/api/system.reflection.assembly.gettypes

要实例化每个类,您可以使用:

Activator.CreateInstance(Type)

https://docs.microsoft.com/en-us/dotnet/api/system.activator.createinstance


推荐阅读