.net 可配置业务错误消息

标签 .net architecture messages configurable

我需要实现某种解决方案,以便在满足某些条件时在我们的业务逻辑层中返回一条错误消息。

该错误消息应该可以在文件或表格中配置,如果需要可以在运行时编辑。

我以前见过它以几种方式完成,它总是以“此错误消息是 {0}”之类的结尾,然后当开发人员使用消息时,他们不一定知道有多少(如果有)参数消息需要。

只是希望利用可能已经完成的事情,我不认为 .net 框架中已经有提供者或任何东西。

最佳答案

一个解决方案;

使用这样的命名占位符存储您的错误消息;

  • “这是一个错误 {name1}。Andkg kfkjgkf {name2}”
  • “这是一些 {size} 的问题”

然后您需要一个在其构造函数中接受原始错误消息的类,例如“这是一些 {size} 问题”。

然后该类将允许开发人员为每个占位符指定值。

最后,开发人员将调用一个方法,用指定的值替换占位符并返回结果。

var rawMessage = "this is some {size} problem"; // fetch this from a file, db, or build runtime
var errorMessage = new ErrorMessage(rawMessage); // finds all the placeholders, stores them in a Dictionary<string, string>
errorMessage.SetPlaceholderValue("size", "big"); // sets the {size} placeholder value
var message = errorMessage.BuildErrorMessage(); // replaces placeholders with values and checks no values are missing

// message should look like "this is some big problem";
// this will handle any number of placeholders

关于.net 可配置业务错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3020186/

相关文章:

c# - 从一开始就构建 IDocument 最有效的方法是什么

architecture - "We use C++/C as backend"是什么意思

windows - 如何防止双击“打开文件”对话框注册对其下方表单的单击?

c# - XML序列化查询

c# - 如何使用一个固定参数和集合中的另一个参数编写 Parallel.ForEach?

c# - WIA 扫描仪,无法获取/设置 4104 和 6146 属性(颜色、颜色深度)

optimization - 直接从数据库或缓存生成网页?

unity3d - 提交应用程序时出现错误ITMS 90086。没有任何帮助

spring - 这些 Spring 调试消息是什么意思?

c++ - Windows 程序中的 WM_QUIT、WM_CLOSE 和 WM_DESTROY 有什么区别?