代码之家  ›  专栏  ›  技术社区  ›  Mikael

使用IDataErrorInfo或任何类似模式传播错误消息

  •  1
  • Mikael  · 技术社区  · 14 年前

    我为这个问题道歉,因为它是相当模糊的,有几个问题是综合的,但由于它们是如此密切相关,我不想把它们分成几个提交物。

    我目前正在考虑如何测试应用程序中的配置错误。有不同的选项可用,以前使用过的是IDataErrorInfo接口。我不太满意这个实现的外观,不是因为它不能工作,而是因为它不能工作,只是我不完全同意实际的实现。我一直在搜索这个网站(所有52个相关问题)和其他网站,以了解为什么微软决定使用关键字__this_157;和索引是一个好主意。它通常用于对集合中的项进行索引,即使是困难的类,也可以将我实现的类视为错误的集合,我并不真正同意_此[]_关键字应隐式用于对它们进行测试。(旁注:这是否意味着自定义集合类不能有自己的配置错误?)为什么这不是像__testerrorstate(string propertyname)_这样的方法调用,甚至不是索引的属性?__string error_get;_157;实际使用的频率如何?在我看来,它有点像黑客,而且不太容易使用。

    由于这个实现,我遇到的一个实际问题是,我有与其他对象相关的对象,我希望传播错误状态。这很难看,因为在用户界面中显示的类应该处于__错误状态_,因为相关对象不一定会显示给用户(除非用户单击界面上的选项并将__向下_157;移动对象层次中的一个级别)。这意味着我需要用我自己的方法扩展错误模式的测试来传播这些错误,然后我开始怀疑我是否应该实现完全不同的东西,根本不使用IDataErrorInfo接口。

    请告诉我在哪里可以找到一些关于为什么IDataErrorInfo是这样的好信息。如果你能为我提供一个好主意,让我知道如何让错误模式通过一个层次结构的对象传播,这将是非常棒的!当我说propagate i don__浼是一个例外,因为这感觉像一个事件,它只是当一个对象被要求配置错误时,它还应该向它的所有子对象询问错误,然后传递子对象的错误消息。

    2 回复  |  直到 10 年前
        1
  •  1
  •   Aliostad    14 年前

    this[] GetError(string propetyName)

    IDataErrorInfo

        2
  •  3
  •   Steven    10 年前

    IDataErrorInfo

    Error this[string] this[]

    Here is an example