【发布时间】:2015-06-26 17:39:52
【问题描述】:
我有一个类来处理我的应用程序的本地化。我的目标是该类可在整个应用程序中使用,因此我将其设为静态。这让我可以在我的应用程序的任何地方调用下面的代码。
Localizer.GetString(/* Key to localize */)
该方法使用 Localizer 类中的多个字段。为了确保设置了这些字段,添加了 Init 方法来初始化 Localizer。如果我班的用户忘记调用Init,例如在应用程序启动时,将出现异常,因为未设置字段。
我正在考虑的一个解决方案是使 Localizer 类不是静态的,在我的应用程序中添加一个设置字段并在全局 static class 中初始化类的构造函数,如下所示:
public static class Globals
{
public static Localizer Localize = new Localizer(/* Field arguments here */);
}
现在我不确定最好的方法是什么。要么
- 静态定位器,但用户必须确保在使用类之前调用
Init。 - 应用程序的全局静态类中的实例化 Localizer。
还有一点注意:用户无权访问类的源代码。
【问题讨论】:
-
也许使用注册表模式?
-
您可以使用 Localizer 类的静态构造函数来初始化字段,而不是使用 init 方法。
标签: c#