C# 从文件夹中的文件读取实体并读取其属性



可能的重复项:
适用于 C# 的分析器

在 C# 中,如何从文件夹中的文件读取实体并读取其属性。示例在文件夹公司中。如果有三个实体文件,则说

Company.cs
Office.cs
Contacts.cs

然后如何读取每个文件并逐个处理其属性。

读取源文件:

List<string> sources = new List<string>();
foreach (string file in Directory.GetFiles(path, "*.cs"))            
    sources.Add(File.ReadAllText(file));

创建编译器参数:

CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.GenerateInMemory = true;

添加对所需库的引用:

parameters.ReferencedAssemblies.Add("mscorlib.dll"); 
parameters.ReferencedAssemblies.Add("System.dll"); 
// etc

将源代码编译为内存中程序集:

var provider = new CSharpCodeProvider();
var results = provider.CompileAssemblyFromSource(parameters, sources.ToArray());

验证编译是否成功:

if (results.Errors.HasErrors)
{
    // display results.Errors
}

并使用反射读取已编译的类型信息:

var assembly = results.CompiledAssembly;
var types = assembly.GetTypes();
foreach (Type type in types)
{
    string name = type.Name;
    var properties = type.GetProperties(); // public properties
    // etc
}

最新更新