gpt4 book ai didi

c# - 使用DTO时如何处理异常

转载 作者:行者123 更新时间:2023-11-30 13:31:40 24 4
gpt4 key购买 nike

我有一个解决方案结构,其中契约(Contract)(数据/服务等)与业务实体位于不同的项目中,我使用 Automapper 在第三个服务实现项目之间进行映射。

WCFProject.Service.BusinessLayer
WCFProject.Service.Contracts
WCFProject.Service.Impl

我的 ServiceImpl 引用了这两个其他项目,从 DataContract 到 BusinessEntity 的自动映射在这里完成,然后在 BusinessEntity 对象上调用正确的方法

现在,我想添加一些 FaultContracts,然后在我的业务逻辑中使用它们来抛出正确的异常。但是,如果我将它们添加到 Contracts 项目(这是理想的,因为我想将所有契约(Contract)放在一起),那么我需要从 BusinessLayer 到 Contracts 的引用,以便在 BusinessLayer 中使用它们。如果可能的话,我想保持这些独立,只处理这两层之间的 DTO。我想保持这两个项目的独立性,这是我的有效协议(protocol)吗?你也映射异常吗?或者有更好的方法来处理这个问题。

最佳答案

您的业务层应该不了解上述各层。所以它对你在上面有一个 wcf 层一无所知。抛出错误是来自你的 wcf 层的东西,在那里捕获你的异常并决定你想做什么。业务异常可以映射到 wcf 故障,但如果您有空指针异常的连接,您只想给出一个一般故障,表明有问题。

可以在此处找到服务行为中处理/映射错误的示例: WCF-Exception-Handling

关于c# - 使用DTO时如何处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19458529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com