场合:
我想在WPF MVVM应用程序中实现多种语言的错误处理。我在互联网上做了一些研究,发现了这篇文章:
问题1 :
你不能把错误处理移到一个地方吗?在de Viewmodel或模型中,但我看不出两个类都有一些错误处理的原因......
问题2 :
在他的例子中,错误消息是在模型类中设置的,这是一个好习惯吗?它看起来对我来说是“糟糕的编码”......或者我错了吗?
答案 0 :(得分:0)
问题1:要记住的是MVVM模式的每个部分的角色。需要在模型中进行一定量的错误处理,但它应该只与业务逻辑相关。这些错误需要传达给模型的“客户”或视图模型。类似地,视图模型中可能会出现一些错误处理,但应限于视图模型的角色(即,它需要独立于视图)。
问题2:我不喜欢在模型中设置错误消息,也不在视图模型中设置错误消息。错误信息需要传递到可以正确格式化和转换的视图。这允许为不同语言创建视图,而无需更改视图模型(或模型)中的任何代码。
我犹豫说“从不”,但我认为模型很少需要了解其语言环境。
我们正在使用以下内容进行多语言支持:
http://www.codeproject.com/Articles/35159/WPF-Localization-Using-RESX-Files
这允许我们传递可以在视图中翻译的错误键。
希望这有帮助!