如何在运行时创建C#类,并在同一运行时访问它们?

时间:2019-06-20 18:27:49

标签: c# .net templates t4

用户将在运行时提供架构信息,然后提供架构之后的数据。

例如:

  • 询问班级名称=>人员。
  • 询问属性数量=>2。
  • 询问具有数据类型的属性=>名称,字符串;年龄,整数。

这应该在C#中创建一个类,如下所示:

class Person
{
    string Name;
    int Age;
}

然后要求提供数据-Abc,25; Def,30。

因此它将创建2个类型为Person的对象。

模板类将已经存在于项目中,属性和数据将在运行时给出,并且在同一运行时将创建该类的对象。

我尝试使用文本模板转换工具包(T4),并使用了它们的设计模板,但是它在设计时通过访问xml配置文件获取模式信息,并创建类。 然后在运行时给出数据。

在运行时是否还要提供架构信息?

T4也有运行时模板,但据我了解,该模板会生成要在C#项目上下文之外使用的文本文件,而设计时模板可以用于提供要在同一项目中使用的C#类。如果我错了请纠正我。

2 个答案:

答案 0 :(得分:1)

具有创建动态类对象的功能。这是相同的MSDN链接。 也。 tutorial了解运行时具有必需属性的动态类的创建

答案 1 :(得分:0)

据我所知您无法实例化这样的类,必须定义clas。

但是您可以创建一个动态类(类型安全性已消失)并分配属性和值。

您还可以生成一个json并将其反序列化为动态this answer