C# 使用自动生成的代码而不预生成?

C# 使用自动生成的代码而不预生成?,c#,visual-studio,auto-generate,C#,Visual Studio,Auto Generate,是否可以在生成的同一次运行中使用自动生成的类?我正在尝试实现一个工厂的功能,但不是自动生成的类。我的场景是这样的: 我有一些文件可以指定某些结果文件可以包含的内容。然后,这些结果文件应用于计算统计数据或其他内容。现在,我想在读取数据时修改这些数据,但由于软件不知道哪些部分写入文件,它不知道如何在内部将数据保存在文件中。我有一个读者和作者(由一个朋友制作,非常老套,使用起来太麻烦)。我想我可以使用这些定义自动生成类/结构 例如: 可以写的类有“A”、“B”和“C”。假设“A”和“B”分别有两个和三

是否可以在生成的同一次运行中使用自动生成的类?我正在尝试实现一个工厂的功能,但不是自动生成的类。我的场景是这样的:

我有一些文件可以指定某些结果文件可以包含的内容。然后,这些结果文件应用于计算统计数据或其他内容。现在,我想在读取数据时修改这些数据,但由于软件不知道哪些部分写入文件,它不知道如何在内部将数据保存在文件中。我有一个读者和作者(由一个朋友制作,非常老套,使用起来太麻烦)。我想我可以使用这些定义自动生成类/结构

例如: 可以写的类有“A”、“B”和“C”。假设“A”和“B”分别有两个和三个孩子。我们把它们叫做A0,A1,B0,B1,B2

现在在软件内部,我想写:

A aObject = new A0();
aObject.variable1 = 2;
aObject.variable2 = "something";

B bObject = new B1();
bObject.SomeVariable = 42;
bObject.SomeOtherVariable = "someValue";
变量的调用和数据表示的类型都写入规范文件中。例如,在xml中,它类似于:

<A0>
<Variable>
   <Name>variable1</Name>
   <type>int</type>
</Variable>
<Variable>
   <Name>variable2 </Name>
   <type>string</type>
</Variable>
</A0>

变量1
int
变量2
一串
(与A1、B0、B1、B2等相同)

现在,我想读取一个结果文件,意识到我必须自动生成A0,生成它,修改数据(使用刚刚创建的类/结构A0),然后再次写入文件

我的解决方案是预先生成所有可能的类/结构并包含它们。问题是A、B和C的版本正在或将要更改


感谢您的帮助:)

老实说,您的问题对我来说没有多大意义,但请回答您的第一个问题:是的,您可以做到。比如看一看


关于Gert Jan

老实说,你剩下的问题对我来说没有多大意义,但要回答你的第一个问题:是的,你能做到。比如看一看


关于Gert Jan

哦,对了,在pseydocode中它看起来是这样的:Generator.generate(A0,A0规范);包含到项目中(以某种方式);A0.somevariable=“某物”;我知道这将意味着编译错误,因为A0在编译时不存在。只是问问;Doh right,在pseydocode中它看起来像这样:Generator.generate(A0,A0规范);包含到项目中(以某种方式);A0.somevariable=“某物”;我知道这将意味着编译错误,因为A0在编译时不存在。只是问问;这正是我要找的他。对不起,我提出了一个奇怪的问题。谢谢DAlso,我给你个提示。那条线非常专业。根据我个人的经验,我发现从模板生成C代码并编译它要容易得多。如果你这样做的话,你可以像平常一样编写代码,调试它,然后把它分割成模板,在代码生成器中使用它。与其他方法相比,更不抽象。只要我的2美分,祝你好运!这正是我要找的,呵呵。对不起,我提出了一个奇怪的问题。谢谢DAlso,我给你个提示。那条线非常专业。根据我个人的经验,我发现从模板生成C代码并编译它要容易得多。如果你这样做的话,你可以像平常一样编写代码,调试它,然后把它分割成模板,在代码生成器中使用它。与其他方法相比,更不抽象。只要我的2美分,祝你好运!