DTO 接口

2024-04-09

我目前正在开始开发一个大型 Web 应用程序,主要包含 Angular SPA 和可以访问后端层的 OData WebAPI。
我们正处于早期阶段,并已开始实施第一批课程,包括Model.dll它位于公共名称空间中,以便所有层都可以访问它。
我们现在正在讨论模型中的那些 DTO。有人说使用接口是绝对必要的,所以代码如下:

namespace MySolution.Common.Model
{
    public interface IPerson
    {
        int Id { get; set; }
        string Name { get; set; }
        ...
    }
}

namespace MySolution.Common.Model
{
    public class PersonDTO : IPerson
    {
        public int Id { get; set; }
        public string Name { get; set; }
        ...
    }
}

就是这样了。只是简单的 DTO,没有更多的智能。
我现在问自己这是否真的是一个好方法,因为我不认为这里使用该接口的必要性。
这样做有什么好处呢?提到了可测试性,但是是否有必要测试 DTo?依赖注入也不应该是重点。
任何启发都会非常有帮助。最后学习新的东西和方法总是好的......


DTO 传输状态 - 就是这样。通过容器注入它们或模拟它们进行测试似乎毫无意义(如果这是动机的话)并且完全没有必要。不要这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DTO 接口 的相关文章

  • Visual Studios 2015 中的“恢复 NuGet 包”没有执行任何操作

    我将解决方案从 SVN 拉入 Visual Studios 2015 代码中的一些 使用 引用出现错误 因此我尝试在右键单击 解决方案 中的解决方案时运行 恢复 NuGet 包 选项探索者 这没有任何作用 我必须手动进入 nuget 管理器
  • 如何使用 Entity Framework 和 Identity 解决对象处置异常 ASP.NET Core

    我正在尝试编写一个控制器 该控制器接收来自 AJAX 调用的请求并通过 DBContext 对数据库执行一些调用 但是 当我发出命令时var user await GetCurrentUserAsynch 在对 DBContext 的任何调
  • strtok() 使用安全吗[重复]

    这个问题在这里已经有答案了 我读到了很多负面的东西strtok 有人说它已经过时 有人说它不是线程安全的 等等 那么真相是什么 我可以使用吗strtok 它是线程安全的吗 Note 我正在使用 Visual C 您可以使用它 它是标准库的一
  • Boost MPI 在监听列表时不会释放资源?

    这是一个后续问题如何释放 boost mpi request https stackoverflow com questions 44078901 how do i free a boostmpirequest 我在监听列表而不是单个项目时
  • C# 异步任务比同步慢

    你知道为什么同步斐波那契方法比异步 等待更快并且比异步任务更快吗 我在每个项目方法上都使用了异步 所以主要是这是一个非常糟糕的方法 Code static int FibonacciSync int number if number 0 r
  • Winform DatagridView 数字列排序

    我只使用一个简单的 DataGridView 来保存一堆数据 有趣的是 我在特定列中有小数 但是当按小数列排序时 它的排序是错误的 例如 起始顺序可能是 0 56 3 45 500 89 20078 90 1 56 100 29 2 39
  • 如何使用c#从数据桶中获取所有文档?

    如何获取数据桶中的所有文档 我尝试过一个示例 但我只能获得一个特定的文档 这是我的代码 CouchbaseClient oclient oclient new CouchbaseClient vwspace data bucket name
  • C# 中 PKCS11Interop 库的线程安全使用 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 PKCS11Interop 在 HSM 内执行密钥管理操作 我使用的 HSM 是 Thales PCI Express 下面是
  • 在 .NET Core 中从 HttpResponseMessage 转换为 IActionResult

    我正在将之前在 NET Framework 中编写的一些代码移植到 NET Core 我有这样的事情 HttpResponseMessage result await client SendAync request if result St
  • 如何在 Visual Basic DLL 和 C++ DLL 之间创建隔离/免注册 COM?

    我必须在 C DLL 中使用 VB COM DLL 我弄清楚了如何从 C DLL 访问 VB COM DLL 并且它可以工作 现在我遇到了一个问题 我必须使用隔离的 COM 免注册 COM 因为我无法在必须使用它的每台 PC 上注册 DLL
  • FluentAssertions ShouldNotThrow 无法识别异步方法/Func

    我正在尝试检查异步方法是否抛出具体异常 为此 我使用 MSTEST 和 FluentAssertions 2 0 1 我已经检查过这个关于 Codeplex 的讨论 http fluentassertions codeplex com wo
  • 如何调试.NET Windows Service OnStart方法?

    我用 NET 编写的代码仅在作为 Windows 服务安装时才会失败 该故障甚至不允许服务启动 我不知道如何进入 OnStart 方法 如何 调试 Windows 服务应用程序 http msdn microsoft com en us l
  • 模板与非模板类,跨编译器的不同行为

    我在一些应用程序中使用编译时计数器 它确实很有用 昨天我想用 gcc 编译一个程序 我之前使用的是 msvc 并且计数器的行为在模板类中发生了变化 它在模板类中不再工作 过于简化的代码 Maximum value the counter c
  • 列表到优先队列

    我有一个 C 大学编程项目 分为两个部分 在开始第二部分时应该使用priority queues hash tables and BST s 我 至少 在优先级队列方面遇到了麻烦 因为它迫使我自己重做第一部分中已经实现的许多代码 该项目是关
  • 如何在 C++ 运行时更改 QML 对象的属性?

    我想在运行时更改 QML 对象的文本 我尝试如下 但文本仍然为空 这是后端类 class BackEnd public QObject Q OBJECT Q PROPERTY QString userFieldText READ userF
  • 冒号在c中起什么作用?

    我在课堂上得到了这个例子 但我不确定它的作用 我知道冒号添加了一个位字段 但我仍然不确定这个问题 a b gt 0 3 1 运算符称为条件运算符 If b值为 gt 0 价值3被分配给a否则值1被分配给a 以 Kernighan Ritch
  • Windows 上本机 C++ 应用程序中的自动死代码检测?

    背景 我有一个用原生 C 编写的应用程序 花了几年的时间 大约有 60 KLOC 有很多函数和类已经死了 可能有 10 15 就像下面提出的类似的基于 Unix 的问题 我们最近开始对所有新代码进行单元测试 并尽可能将其应用于修改后的代码
  • 使用任务的经典永无止境的线程循环?

    给出了一个非常常见的线程场景 宣言 private Thread thread private bool isRunning false Start thread new Thread gt NeverEndingProc thread S
  • C# PasswordDeriveBytes:似乎 Salt 并不重要

    可能我误解了什么 以下代码通过 CryptDeriveKey 使用两种不同的盐生成两个相等的密钥 这是控制台结果 盐1 21 3e 18 a3 9a 8b 5f gt 键 da 89 ea 3d 91 08 20 98 20 e9 dc 4
  • 在 C# 中使用自定义千位分隔符

    在显示字符串时 我尝试不使用 字符作为千位分隔符 而是使用空格 我想我需要定义一种自定义文化 但我似乎做得不对 有什么指点吗 例如 将 1000000 显示为 1 000 000 而不是 1 000 000 no String Replac

随机推荐

  • Apache CXF Web 服务上的命名空间问题

    我正在使用 Apache CXF 2 7 3 并遇到了我真的不明白的命名空间问题 我已经尝试对此进行了广泛的搜索 但我发现的大多数结果都是针对不同的行为 问题是调用 Web 服务时 如果参数元素是命名空间限定的 则调用将会失败 消息中的所有
  • Swift:如何禁用函数的整数溢出/下溢陷阱

    我正在将一些旧的 C 代码导入到 swift 项目中 并将其移植为纯 swift 代码 其中一些会进行 加密 其中它会执行类似的操作 let a UInt8 x e g 30 let b a 237 在 C 中 这只是下溢和环绕 这对于这个
  • 扩展 Magento 购物车

    我需要扩展 Magento 购物车以包含商店定位器的额外步骤 我知道我需要覆盖核心 OnePage 控制器 Mage Checkout OnepageController 和块 Mage Checkout Block Onepage 但是在
  • Java持久化问题

    我试图通过 GlassFish 在 EJB 中使用 JPA 来启动并运行一个简单的示例 我有以下内容persistence xml
  • Windows 上的 Cloud-Init 等效项是什么?

    Windows 上的股票引导过程似乎有点缺乏 Linux 具有 cloud init 它将安装软件包 存储文件并根据用户数据运行 bash 脚本 Windows 有 ec2config 但当前不支持在系统 就绪 时运行 cmd 或 powe
  • `checkout -B` 与 `symbolic-ref`

    以下命令等效吗 如果不是 有什么区别 git checkout B a branch and git branch f a branch HEAD git symbolic ref HEAD refs heads a branch 也可以看
  • checkboxGroupInput - 设置最小和最大选择数 - 刻度

    以下是带有复选框组输入的示例代码 library shiny server lt function input output output Selected lt renderText paste input SelecetedVars c
  • 日期自然语言解析器(.NET)?

    我希望能够让用户使用自然语言 例如 下周五 每个工作日 输入日期 包括重复日期 很像以下的例子http todoist com Help timeInsert http todoist com Help timeInsert I found
  • RecyclerView 中的共享元素转换

    我试图在 RecyclerView 上使用共享元素转换 但它似乎不起作用 这是我使用的适配器的一部分makeSceneTransitionAnimation public void onBindViewHolder final BookVi
  • Safari ITP 2.0 存储访问 API - 在 hasStorageAccess 中嵌套 requestStorageAccess 时出现问题 - 非嵌套工作

    我目前正在尝试实现调用存储访问 API 但在将 requestStorageAccess 的调用嵌套在 hasStorageAccess 中时遇到问题 这是代码的概要 它相当标准 requestStorageAccessAndServe l
  • 如何在 Haml 中撤消 Rails 模板生成?

    我在 Rails 项目中安装了一个新的 gem phrasing 它对多个 Haml gem 具有 gem 依赖性 我需要 gem 它为我的项目添加了一些惊人的功能 并且需要安装依赖项 但是现在当我运行rails generate scaf
  • Slick - 更新完整对象或超过 22 列

    我有一张桌子user permissions其中有 46 个权限列以及id and created date 这个表有对应的UserPermissions class class UserPermission val id Long val
  • C# 中 anagram 函数的实现

    可能的重复 有什么简单的方法可以判断单词列表是否是彼此的字谜 https stackoverflow com questions 522112 what is an easy way to tell if a list of words a
  • SOLR 权限/根据访问权限过滤结果

    例如 我有文档 A B C 用户 1 必须只能看到文档 A B 用户 2 必须只能看到文档 C 是否可以在 SOLR 中执行此操作而不通过元数据进行过滤 如果我使用元数据过滤器 每次访问权限发生变化时 我都必须重新索引 2012 年 2 月
  • Spring 注入 - 访问构造函数中注入的对象

    我有一个资源 Spring bean 它的一些字段是由 Spring 注入的 例如 Repository value appDao public class AppDaoImpl implements AppDao PersistenceC
  • 有没有办法将 __len__ 或 __eq__ 等方法实现为类方法?

    它很容易实现 len self Python 中的方法 以便它处理len inst 像这样的调用 class A object def len self return 7 a A len a gives us 7 您可以定义很多类似的方法
  • 在时尚中排除网站的子文件夹?

    有没有办法使用 Stylish 排除网站的子文件夹 moz document domain www website com 将会影响 website com 的所有页面 问题是 这个网站还托管一个维基 www website com wik
  • 如何在我的网站上显示我的 Instagram feed?

    我有一个网站 可以显示我的 Instagram 动态 以前我用过 Instagram 遵循 API 用户 自我 媒体 最近 这个 API 使用的是我生成的一次访问令牌 并将其作为变量保存在我的代码中 并且很长一段时间 2 3 年 都没有更改
  • 在 Javascript 中将小数金额转换为文本字符串分数?

    我有一个以数字形式返回的值 可以是十进制数 例如 1 15 但是 我需要格式化所有数字在一个范围内到给定的分数 例如 所有大于 0 但小于 0 2 的数字我想返回 1 8 我已经开始将其作为一系列 if else 语句来执行此操作 但我想知
  • DTO 接口

    我目前正在开始开发一个大型 Web 应用程序 主要包含 Angular SPA 和可以访问后端层的 OData WebAPI 我们正处于早期阶段 并已开始实施第一批课程 包括Model dll它位于公共名称空间中 以便所有层都可以访问它 我