Есть такой XML-файл:
<ReplaceSubstrings>
<ReplaceSubstring Name="f4" Value="{f0}\{f1}\{f2}\abcd" />
<ReplaceSubstring Name="f0" Value="abcd" />
<ReplaceSubstring Name="f1" Value="{f0}\abcd" />
<ReplaceSubstring Name="f2" Value="{f0}\{f1}\abcd" />
<ReplaceSubstring Name="f3" Value="{f0}\{f2}\abcd" />
</ReplaceSubstrings>
Десериализуется в массив таких экземпляров:
public class ReplaceSubstring
{
public string Name { get; set; }
public string Value { get; set; }
}
Как правильно написать алгоритм, чтобы получить Dictionary<string,string> или массив тех же ReplaceSubstring, где значения взаимно уже раскрыты и кольцевые ссылки обработаны (поднятием исключения)?