.resxファイルのComment属性を使う(C#)

C#

リソースファイルから部分的に抽出して別ファイルを生成したりする時にコメント属性を利用できれば使いまわせそうだと思ったので使い方をメモしておく。

private void ReadResxFile()
{
    var resxFile = "./Resources.resx";

    using (var reader = new ResXResourceReader(resxFile))
    {
        reader.UseResXDataNodes = true;

        foreach (DictionaryEntry entry in reader)
        {
            var type = (ITypeResolutionService)null;
            var dataNode = (ResXDataNode)entry.Value;
            
            Console.WriteLine($"Name: {dataNode.Name}, Value: {dataNode.GetValue(type)}, Comment: {dataNode.Comment}");
        }
    }
}

ReaderをDataNodeを使う設定に変更し、DictionaryEntryをResXDataNodeにキャストします。
これだけ。
あとはdataNode.Commentで呼び出せます。

極端な話、resxはただのxmlなのでXML parserでゴリゴリやっちゃうのもいいかもしれませんね。

ResXDataNode Class (System.Resources)
RepresentsanelementinanXMLresource(.resx)file.
ResXResourceReader.UseResXDataNodes Property (System.Resources)
GetsorsetsavaluethatindicateswhetherResXDataNodeobjectsarereturnedwhenreadingthecurrentXMLresourcefileorstream.
C#
スポンサーリンク
Once and Only

コメント