Orleans 2.0中的代码生成
Orleans 2.0中的代码生成得到了改进,缩短了启动时间,并提供了更具确定性、可调试性的体验。与早期版本一样,Orleans提供构建时和运行时代码生成。
-
在构建期间 - 这是推荐的选项,仅支持C#项目。在此模式下,每次编译项目时都会运行代码生成。构建任务将注入到项目的构建管道中,代码将在项目的中间输出目录中生成。要激活此模式,请将
Microsoft.Orleans.CodeGenerator.MSBuild
或者Microsoft.Orleans.OrleansCodeGenerator.Build
,添加到包含Grains、Grain接口、序列化器或需要序列化的类型的所有项目。可以在相应的代码生成章节中,找到包和附加代码生成器信息之间的差异。通过在目标项目的csproj文件中指定OrleansCodeGenLogLevel
的值,可以在构建时发出其他诊断。例如,<OrleansCodeGenLogLevel>Trace</OrleansCodeGenLogLevel>
。 -
在配置期间 - 这是F#、Visual Basic和其他非C#项目唯一受支持的选项。此模式在配置阶段生成代码。要访问它,请参阅配置文档。
两种模式都生成相同的代码,但运行时代码生成,只能生成可公开访问类型的代码。