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);

c# -基于字符串列表创建类

将文本转换为类的任务传统上属于系统的两个部分:编译和序列化。这使我想到了几种方法。

  1. 使用Reflection.Emit编译。首先要使用的类是TypeBuilder,但您还需要几个。
  2. 使用Roslyn编译。Roslyn为动态编译提供了一个API。
  3. 使用c#编译器编译。创建一个有效的字符串程序并编译它。使用System.Type从程序集中拉出所需的类型。
  4. 通过JSON反序列化。创建一个有效的JSON对象作为字符串并对其进行反序列化。
  5. 通过XML进行反序列化。创建一个有效的XML模式作为字符串并对其进行反序列化。

我会使用Reflection。Emit,因为我对它很熟悉,但它们都或多或少可行