首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#项目中使用Microsoft Bond

在C#项目中使用Microsoft Bond
EN

Stack Overflow用户
提问于 2016-09-19 18:52:40
回答 1查看 7.1K关注 0票数 3

是否有在C#项目中引用Microsoft Bond模式文件的标准方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-23 03:26:12

对于SDK风格的.csproj文件

当您将PackageReference添加到NuGet包Bond.CSharp的SDK样式的.csproj文件(类似于用于.NET核心或.NET 5+的文件)中时,项目目录中任何.bond文件的类型都将包含在您的程序集中:

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">
  <ItemGroup>
    <PackageReference Include="Bond.CSharp" Version="9.0.3" />
  </ItemGroup>
</Project>

代码生成将在项目目录中的所有.bond文件上运行,并且生成的.cs文件将编译到您的程序集中。

MSBuild项BondCodegen用于收集要处理的.bond文件。您可以使用MSBuild's Update and Remove functionality自定义codegen中包含的项。

有关目标支持的更多详细信息,如可用于自定义编解码器的元数据,请查看Bond.CSharp package READMEthe targets themselves。(请注意,私有属性中以下划线开头的任何属性/目标。这些属性不是codegen目标的公共接口的一部分,可以随时更改。)

Bond.CSharp软件包引入了许多其他焊接软件包,以获得焊接序列化的全部功能,这通常是您想要的。但是,您也可以使用finer-grained packages对依赖项进行更精确的控制(例如,不添加对Newtonsoft.JSON的依赖项)。

用于“经典”.csproj文件

当您使用Visual Studio添加对NuGet包Bond.CSharp的引用时,NuGet会将对Bond codegen .targets文件的引用添加到.csproj文件。此.targets文件将在BondCodegen ItemGroup中的任何.bond文件上自动运行codegen,并且生成的.cs文件将被隐式编译。

在Visual Studio中,这是通过在其属性中更改文件的“生成操作”来控制的。

焊接源树中有一个simple example showing how the BondCodegen ItemGroup works。下面是该.csproj文件的摘录:

代码语言:javascript
复制
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  ...
  <Import Project="..\..\..\..\cs\build\nuget\Bond.CSharp.props" />
  ...
  <ItemGroup>
    <BondCodegen Include="schema.bond" />
  </ItemGroup>
  ...
  <Import Project="$(BOND_PATH)\build\nuget\Bond.CSharp.targets" />
</Project>
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39571388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档