You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET 6与.NET Framework 4.7.2项目间共享领域模型

跨.NET版本共享领域模型的可行方案

1. 多目标框架类库

创建一个多目标类库项目,在.csproj文件中同时指定.NET Framework 4.7.2和.NET 6作为目标框架,编译后会生成适配两个版本的程序集,打包成NuGet包即可被两个项目同时引用:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net472;net6.0</TargetFrameworks>
  </PropertyGroup>
</Project>

若模型代码存在框架专属逻辑,可通过条件编译指令区分:

#if NET472
// .NET Framework 4.7.2 专属实现
#elif NET6_0
// .NET 6 专属实现
#endif

2. 拆分纯DTO层

如果领域模型包含较多框架依赖的业务逻辑,可拆分出仅包含数据结构的DTO(数据传输对象)层,用多目标类库维护这部分DTO。两个项目各自实现领域模型的业务逻辑,Web API通信时共用DTO作为契约,既保证模型一致,又隔离框架差异。

3. 代码生成工具

借助代码生成工具从基准模型自动生成适配两个框架的代码:

  • 用dotnet tool install --global dotnet-svcutil,基于Web API的OpenAPI文档,分别为两个项目生成对应版本的客户端模型;
  • 维护一份核心模型的C#文件,通过MSBuild任务在编译时针对不同框架做少量调整后嵌入项目。

4. .NET Standard 2.0类库

创建目标为**.NET Standard 2.0**的类库,因为.NET Framework 4.7.2和.NET 6均支持该标准。将领域模型放在这个类库中,只要代码不依赖超出.NET Standard 2.0的API,就能同时被两个项目引用。注意需确认Sitecore项目对.NET Standard类库的兼容性,部分Sitecore API可能存在特殊限制。


内容的提问来源于stack exchange,提问作者9_9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:35:21