gpt4 book ai didi

c# - T4 在项目之间复制枚举

转载 作者:太空宇宙 更新时间:2023-11-03 22:17:08 26 4
gpt4 key购买 nike

我的解决方案中有两个项目。我需要将 Project1 中的 enum1 的值复制到 project2 中的 enum2。这可能使用 T4 吗?

编辑

让我描述一下我的情况。 enum1所在的project1是由工具生成的。主要有从数据库生成的实体和表名的枚举。这个project1是在服务器端用来和数据库交互的。服务器端确实通过 WCF 与客户端通信。关于分离,我不想通过 WCF 共享我的项目 1。但是有一个带有实体名称的枚举。我在客户端使用实体名称来使某些任务通用。例如,我通过 WCF(客户端 -> 服务器)发送了一些值,并使用实体名称将值映射到适当的实体。

最佳答案

首先,是的,您肯定可以构建一个 T4 模板来读取您在一个项目中的枚举,并将它们添加到另一个项目中。

但是,您可能不想这样做。

但是,如果这样做,还有一种更简单的方法,您只需将原始枚举文件作为链接添加到第二个项目中。通过添加一个链接,您实际上并没有复制文件,您只是在另一个项目中链接回它,然后就没有必要用 T4 搞砸了。然而,这假定您不想以任何方式更改流程中的枚举。

要添加链接,只需单击“添加现有项”,像往常一样导航到原始枚举文件,但在“添加”按钮上,有一个小的下拉菜单,其中包含链接菜单项。使用它,您会看到新文件在解决方案资源管理器中的图标上覆盖了一个小链接符号,表明它是一个链接。

但是,我说您可能不想这样做的原因是,即使您将整个枚举文件按原样从一个项目复制到另一个项目,这两个枚举也不是同一类型。

换句话说,如果您在一个项目中需要调用另一个项目中的代码,那么在调用项目 B 中声明使用项目 B 中的枚举的代码时使用项目 A 中的枚举是行不通的,它们'重新不​​同类型。程序集是类型标识的一部分。

如果您需要这样做,您需要在项目 A(或 B)中声明枚举,并在另一个项目中引用该项目,或者在第三个项目中声明它,并在两个 A 中引用该第三个项目和 B.

关于c# - T4 在项目之间复制枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4666713/

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