【问题标题】:Custom attribute to handle errors处理错误的自定义属性
【发布时间】:2016-11-25 06:15:55
【问题描述】:

我尝试通过自定义属性来处理错误,以便不要在任何地方使用 try catch。我已经找到了一个名为 PostSharp 的库,它做得很好,但是每个项目仅限于 10 个目标类。在 ASP.Net MVC 中有一个等价物,称为 HandleErrorAttribute,但我正在开发一个 Console

欢迎任何想法、解决方案或示例。

谢谢。

【问题讨论】:

  • PostSharp 是我认为的最佳解决方案。你用的是付费版吗? PostSharp 使用更快的 MSIL 代码,然后使用反射,但我认为您不想自己编程 MSIL。这很复杂。此外,我认为您无法使用 customAttribute 处理此问题。因为 PostSharp 所做的是检查您的属性并插入 try-catch 结构。他们在你的代码中编译它。所以你没有看到它并认为 wow 这么容易这个属性。但在内部,如果你编译它会添加 try-catch 结构。也许表达式树允许类似的东西......
  • 我没用付费版(我没钱)。我不知道 PostSharp insert try catch 在运行时,我会尝试这个解决方案。随时通知您。
  • 是的。如果您编译编译器会生成 MSIL 代码,然后由即时编译器在运行时进行解释。 PostSharp 有很多方便的属性,可以在编译时添加样板代码,这样您就不需要每次都对其进行编程。比如 Try-Catch 或 INotifyPropertyChanged 等等。这就是它的工作原理;)如果你没有钱,也许 ExpressionTrees 可以做某事。类似的。但是你有很多事情要做;)

标签: c# error-handling custom-attributes


【解决方案1】:

我终于基于 PostSharp 类创建了自己的自定义属性。制作它的链接是:http://doc.postsharp.net/exception-handling

【讨论】:

    猜你喜欢
    • 2018-10-12
    • 1970-01-01
    • 2013-02-12
    • 2011-01-29
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多