gpt4 book ai didi

c# - 如何在不编译项目的情况下获取类的元数据

转载 作者:太空狗 更新时间:2023-10-29 18:29:06 25 4
gpt4 key购买 nike

在我们的项目中,我们使用了大量的 T4 代码生成。我们使用 X-Tensive 的名为 DataObjects.Net 的 ORM。我们有一个先有鸡还是先有蛋的问题。在使用程序集的元数据生成代码之前,我们需要编译 ORM 的类。然后当代码生成时,我们可以再次编译模型,但现在与生成的代码(部分类)结合。如果没有生成的代码,则无法编译模型类中的大部分自定义代码。

我们如何解决它是在 VS2013 中有一个单独的配置称为“模型”。在此配置中,存在调用“JUSTMODEL”的“条件编译符号”。所有在没有生成代码的情况下无法编译的代码都放置在 #if !JUSTMODEL #endif 编译器指令之间,这会导致此代码无法针对“模型”配置进行编译。

这有点乏味。我们已经创建了一个小的可扩展性应用程序来自动执行此过程,但运行这些过程越来越耗时。

现在我想知道是否有可能在不通过某种可扩展性 API 构建程序集的情况下获取模型程序集的元数据。我在 Visual Studio 中看到很多工具可以理解编辑器中加载的类并给我一些反馈(例如智能感知)。

最佳答案

有比 NRefactor 更好的方法。我在 Visual Studio 中发现了 CodeModel。它为我提供了生成代码所需的所有元数据。您可以在网上找到很多关于如何实现该目标的详细信息,如下所示:

  1. Microsoft
  2. Tangible

和许多其他地方。由于数据的动态特性,编码与 C# 中的编码略有不同,但是当您掌握它时,它非常简单且非常强大。

关于c# - 如何在不编译项目的情况下获取类的元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22425542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com