【问题标题】:When should I implement globalization and localization in a .NET Application?我应该何时在 .NET 应用程序中实现全球化和本地化?
【发布时间】:2010-06-01 19:55:58
【问题描述】:

我正在清理我编写的 C# 应用程序中的一些代码,并真正尝试专注于最佳实践和编码风格。因此,我正在通过 FXCop 运行我的程序集,并尝试研究它给我的每条消息,以决定应该和不应该改变什么。我目前关注的是语言环境设置。例如,我目前遇到的两个错误是我应该为 Convert.ToString(int) 指定 IFormatProvider 参数,并设置 Dataset 和 Datatable 语言环境。这是我从来没有做过的事情,也从来没有考虑过太多。我总是把这个超载排除在外。

我正在开发的当前应用程序是一家小公司的内部应用程序,它很可能永远不需要在另一个国家/地区运行。因此,我认为我根本不需要设置这些。另一方面,这样做并没有什么大不了的,但它似乎是不必要的,并且可能会在一定程度上影响可读性。

我知道微软的争论是如果它存在就使用它,句号。好吧,从技术上讲,我应该在每个实现 IDisposable 的对象上调用 Dispose(),但我不会为 Datasets 和 Datatables 这样做。我想知道关于小型内部应用程序的全球化和本地化的做法是“在野外”。

【问题讨论】:

  • 如果你不在 DataSets 上调用 Dispose,你肯定会发生内存泄漏。
  • 这是 2 个问题。第 2 部分与标题完全无关。
  • @Otavio:不,所有控件/组件都是 IDisposable,但并非所有这些类都需要它。
  • @Henk:我真的只是想知道全球化和本地化。我只是提供了围绕 IDisposable 的实践作为我不遵循 Microsoft 建议的示例,这是正确的。我会稍微修改一下我的问题以使其更清楚。
  • 一个基于 cmets 对已删除问题的简要说明:我正在谈论的一个例外是 WCF 代理类。这是我知道Dispose 可能引发异常的唯一情况。如果在 using 块的末尾调用 Dispose 然后抛出异常,那么您将丢失任何正在进行的异常。

标签: c# .net localization globalization


【解决方案1】:

对于小型内部应用,我通常会忽略这类警告。请记住,FXCop 旨在确保您的代码适用于框架,并非所有代码都可能与您相关,我总是在构建应用程序时禁用我认为不适合应用程序的各种规则。

虽然我会在任何实现它们的类上调用 Disponse,但不管它们现在不做任何事情,升级版本的类可能会开始泄漏一些重要的东西,这是一个养成的好习惯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    相关资源
    最近更新 更多