リソースファイルから部分的に抽出して別ファイルを生成したりする時にコメント属性を利用できれば使いまわせそうだと思ったので使い方をメモしておく。
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)
Represents an element in an XML resource (.resx) file.
ResXResourceReader.UseResXDataNodes Property (System.Resources)
Gets or sets a value that indicates whether ResXDataNode obj...
コメント