c# -基于字符串列表创建类
本文关键字:列表 创建 字符串 | 更新日期: 2023-09-27 18:15:30
我需要在运行时创建一个基于字符串列表的属性类。然后,我需要在序列化这个新类之前用值填充它。看过c#中的动态和匿名类型,但无法使其工作。感谢任何帮助。谢谢!
//1. List of string with the properties I need
List<string> properties = new List<string>();
properties.Add("Id");
properties.Add("Name");
//2. Create class called className with properties above
//todo
//3. Populate with values
//todo
//4. Serialize to JSON
JavaScriptSerializer jScriptSerializer = new JavaScriptSerializer();
string jsonString = jScriptSerializer.Serialize(className);
将文本转换为类的任务传统上属于系统的两个部分:编译和序列化。这使我想到了几种方法。
- 使用Reflection.Emit编译。首先要使用的类是TypeBuilder,但您还需要几个。
- 使用Roslyn编译。Roslyn为动态编译提供了一个API。
- 使用c#编译器编译。创建一个有效的字符串程序并编译它。使用System.Type从程序集中拉出所需的类型。
- 通过JSON反序列化。创建一个有效的JSON对象作为字符串并对其进行反序列化。
- 通过XML进行反序列化。创建一个有效的XML模式作为字符串并对其进行反序列化。
我会使用Reflection。Emit,因为我对它很熟悉,但它们都或多或少可行