15

dll からすべての文字列リソースを読み取り、それらをいくつかのテーブルに挿入するプログラムを作成する必要があります。リソースを読み取るメソッドがあります。

    private static IEnumerable<KeyValuePair<string,string>> getAllResources(ResourceManager resourceManager, 
        Language language)
    {

        ResourceSet resourceSet = resourceManager.GetResourceSet(getCulture(language), true, true);

        IDictionaryEnumerator dictNumerator = resourceSet.GetEnumerator();

        // Get all string resources
        while (dictNumerator.MoveNext())
        {
            // Only string resources
            if (dictNumerator.Value is string)
            {
                var key = (string)dictNumerator.Key;
                var value = (string)dictNumerator.Value;
                yield return new KeyValuePair<string, string>(key, value);
            }
        }
    }

しかし、使い始めたとき、ファイルのように追加されたリソースも読み取ることに気付きました(ファイルの内容を読み取ります)

「ファイル」として追加されたリソースを無視して、文字列のみを読み取るにはどうすればよいですか?

4

1 に答える 1

3

それを行う方法はありません。たとえば、Reflector を介してアセンブリのリソース セクションを確認します。テキスト ファイルは文字列として保存されます。文字列値とテキスト ファイル値に違いはありません。

ただし、バイナリ ファイルは問題にはなりません。バイナリ ファイル タイプの場合は、文字列ではなく byte[] を値として使用します。

于 2011-06-30T08:48:54.013 に答える