C# 数据传输对象-例外

C# 数据传输对象-例外,c#,dto,C#,Dto,我在应用程序中使用DTO模式。我没有创建任何专用的汇编器来从我的域实体构建dto,而是将域实体传递给dto,并允许它构建并返回适当构造的dto 这个方法行吗 DTO抛出异常是否可以接受?如果没有更多细节,就很难对此发表评论,而且在任何情况下,这可能取决于您的情况和个人偏好 不过,有一件事让我感到震惊,那就是这可能会将您的一些内部工作暴露给客户。例如,假设您通过将域实体作为参数传递给DTO类中的构造函数来实现这一点,则该构造函数对于接收DTO的客户端也是可见的,域实体类也是可见的,因为DTO需要知

我在应用程序中使用DTO模式。我没有创建任何专用的汇编器来从我的域实体构建dto,而是将域实体传递给dto,并允许它构建并返回适当构造的dto

这个方法行吗


DTO抛出异常是否可以接受?

如果没有更多细节,就很难对此发表评论,而且在任何情况下,这可能取决于您的情况和个人偏好

不过,有一件事让我感到震惊,那就是这可能会将您的一些内部工作暴露给客户。例如,假设您通过将域实体作为参数传递给DTO类中的构造函数来实现这一点,则该构造函数对于接收DTO的客户端也是可见的,域实体类也是可见的,因为DTO需要知道它才能将其作为参数接受(必须存在对它的引用才能使其成为有效参数)

我不知道这是否是您的问题(或者这是否是您实现逻辑的方式),但这可能值得考虑

更新:

至于抛出异常,以及DTO中的一般逻辑——我个人的偏好是将这类事情保持在绝对最小。同样,这可能有点主观,但我至少可以想到两个原因:

关注点的基本分离:DTO应该是一个简单的传输对象,仅此而已

避免依赖关系:根据我的经验,如果在这样的地方添加逻辑,最终会添加引用,这会让您以后感到遗憾。因为您可能希望使用和引用来自多个不同项目的DTO类,所以您不希望从DTO引用到这些项目中的任何一个,因为这样会ld隐式地在这些项目之间添加引用。避免DTO中的任何逻辑将保证它不依赖于自身程序集之外的任何东西