7

私は大規模なプロジェクトのローカライズに取り組んでおり、大規模なリソース ファイルを手動で作成し、コード内で各文字列を名前で呼び出すことでそれを行っていました。を呼び出して(ダイアログ ボックスなどで)ResourceManager使用する代わりに、単純に各文字列を に置き換えていました。GetStringResources.ClassName_MethodName_StringName

を使用することになっているような気がしますがResourceManager、それを使用するようにすべてのコードを変更する前に、なぜそれが良いのかを理解したいと思っています。

4

2 に答える 2

9

ええと、ResourceManagerを直接使用する理由はありません(それに対するいくつかの例外が適用されます)。なぜなら、resx-Filesから生成されたコードを使用する場合、それが行うのは次のことだけだからです。

public static string MyResourceName {
    get {
        return ResourceManager.GetString("MyResourceName", resourceCulture);
    }
}

リソース名のコンパイル時検証を無料で利用できるので、これは素晴らしいことです。

于 2013-01-24T13:56:37.650 に答える
0

http://www.c-sharpcorner.com/uploadfile/prvn_131971/chapter-i-resources-and-localization/

内部的には、生成されたクラスは、System.Resources名前空間で定義されているResourceManagerクラスのインスタンスを使用します。このクラスのインスタンスには、生成されたクラスのResourceManagerプロパティを介してアクセスできます。内部的には、埋め込みリソース自体にアクセスするためのプロパティプロシージャは、このResourceManagerインスタンスのGetXxxメソッドの1つ(つまり、GetStringまたはGetStream)の呼び出しの単なるラッパーです。たとえば、生成されたプロパティプロシージャResources.MyResourceStringsを介してアクセスできるリソース。

したがって、とにかくYourResources.ResourceManager.GetString()メソッドを使用している名前でリソースを直接呼び出します。

于 2013-01-24T14:03:31.163 に答える