c# - 将类从一个 C# 项目导入到另一个项目时是否可以排除自动生成的文件?

标签 c# grpc

将类从一个 C# 项目导入到另一个项目时是否可以排除自动生成的文件?

我有一个项目,它基于从 proto 文件生成的类来实现 GRPC 服务。

此外,我还有另一个项目,我在其中测试第一个项目的类,例如 GRPC 服务。在第二个项目中,我实现了一个 GRPC 客户端,以使用相同的 proto 文件副本来测试 GRPC 服务。

问题是我导入了第一个项目的所有类,遗憾的是其中一些类是使用相同的原型(prototype)文件生成的,并且有很多关于类名冲突的警告。

有没有办法在同一解决方案的项目之间仅导入特定文件?

我使用项目文件中的下一个指令来生成类:

  • 在第一个项目中:
<ItemGroup>
    <Protobuf Include="Protos\Proto.proto" GrpcServices="Server" />
</ItemGroup>
  • 在第二个中:
<ItemGroup>
    <Protobuf Include="Protos\Proto.proto" GrpcServices="Client" />
</ItemGroup>

我将第一个项目的类导入到第二个项目中,如下所示:

<ItemGroup>
    <ProjectReference Include="..\core\First.csproj" />
</ItemGroup>

警告是这样的:

TestClient.cs(53,29): warning CS0436: The type 'Type1' in '/folder1/solution/test_project/obj/Debug/netcoreapp3.1/Class1.cs' conflicts with the imported type 'Type1' in 'Project1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Using the type defined in '/folder1/solutiion/test/obj/Debug/netcoreapp3.1/Class1.cs'. [/folder1/solution/test_project/Project2.csproj]

最佳答案

我通常在单个程序集中创建原型(prototype)文件及其生成的代码,然后从服务和客户端程序集中引用该程序集。这使得代码生成一次,并消除重复的代码生成。

关于c# - 将类从一个 C# 项目导入到另一个项目时是否可以排除自动生成的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59982209/

相关文章:

authentication - gRPC中如何使用Oauth2进行用户认证

python - 你如何在 grpc 中管理数据库连接?

c# - 如何对 HashSet 使用 Comparer

python - pyinstaller 没有名为 grpc 的模块

c# - 如何将两个 C# 列表拼接成一个?或者可能使用不同的集合类型?

c# - ASP.NET C# MySQL 查询执行失败时重试

Golang grpc : how to recover the grpc server from panic?

c++ - GRPC C++ Build from Source fatal error

c# - 如何在 C# 中传递 const 引用?

c# - HtmlAgilityPack 根据查询过滤 HTML