C# - 根据字符串列表创建一个类

时间:2014-07-30 10:01:32

标签: c# json

我需要在运行时创建一个基于字符串列表的属性。 然后我需要在序列化之前用值填充这个新类。 看过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);

1 个答案:

答案 0 :(得分:1)

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

  1. 使用Reflection.Emit进行编译。开始的类是TypeBuilder,但是你还需要几个。
  2. 使用Roslyn编译。 Roslyn公开了一个用于动态编译的API。
  3. 使用C#编译器进行编译。创建一个有效的程序作为字符串并编译它。使用System.Type从组件中拉出所需类型。
  4. 通过JSON进行反序列化。将有效的JSON对象创建为字符串并对其进行反序列化。
  5. 通过XML反序列化。创建一个有效的XML模式作为字符串并对其进行反序列化。
  6. 我会使用Reflection.Emit,因为我熟悉它,但它们或多或少都是可行的。