首页 / 设计模式 / c# – 包含返回值错误的设计模式
c# – 包含返回值错误的设计模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 包含返回值错误的设计模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1969字,纯文字阅读大概需要3分钟。
内容图文
![c# – 包含返回值错误的设计模式](/upload/InfoBanner/zyjiaocheng/824/c07d3d53af9e4807a025afd9c7c9360d.jpg)
我正在通过其API编写另一个软件的加载项. API返回的类只能通过本机软件和API进行访问.所以我正在编写自己独立的POCO / DTO对象,这些对象映射到API类.我正在研究一个将在原生文件中读取的功能,并返回这些POCO对象的集合,我可以偷到其他地方.目前我正在使用JSON.NET将这些类序列化为JSON,如果这很重要的话.
例如,我可能有像这样的DTO
public class MyPersonDTO
{
public string Name {get; set;}
public string Age {get; set;}
public string Address {get; set;}
}
..和这样的方法将本地“人”读入我的DTO对象
public static class MyDocReader
{
public static IList<MyPersonDTO> GetPersons(NativeDocument doc)
{
//Code to read Persons from doc and return MyPersonDTOs
}
}
我有一个测试文件的单元测试设置,但是当我在其他文件上运行导出时,我一直遇到意外问题.有时原生对象会有意想不到的值,或者API中存在缺陷,当没有理由时会抛出异常.
目前,当发生“特殊”事件时,我只记录异常,导出失败.但我已经决定我宁愿导出我能做的事情,并在某处记录错误.
最简单的选择是只记录并吞下异常并返回我能做的事情,然而我的调用代码无法知道何时出现问题.
我正在考虑的一个选项是将错误字典作为单独的输出参数返回.密钥将标识无法读取的属性,该值将包含异常/错误的详细信息.
public static class MyDocReader
{
public static IList<MyPersonDTO> persons GetPersons(NativeDocument doc, out IDictionary<string, string> errors)
{
//Code to read persons from doc
}
}
或者,我也在考虑将错误存储在返回对象本身中.这会使我的对象的大小膨胀,但还有一个额外的好处就是直接将错误存储在我的对象中.因此,如果某人的导出产生错误,我不必担心在他们的计算机上追踪正确的日志文件.
public class MyPersonDTO
{
public string Name {get; set;}
public string Age {get; set;}
public string Address {get; set;}
public IDictionary<string, string> Errors {get; set;}
}
这通常如何处理?是否有另一种报告错误的选项以及我没有考虑的返回值?
解决方法:
您可以将结果包装在回复或响应消息中,而不是将错误作为实体的一部分返回.然后,错误可能是响应消息的一部分而不是实体.
这样做的好处是实体是干净的
缺点是将错误映射回有问题的实体/属性将更加困难.
在发送批次实体时,这种下行可能是一个大问题.当API更加面向单个实体时,它就没那么重要了.
内容总结
以上是互联网集市为您收集整理的c# – 包含返回值错误的设计模式全部内容,希望文章能够帮你解决c# – 包含返回值错误的设计模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。