Этот вопрос можно было задать или ответить раньше, но я чувствую, что ни один из хитов на самом деле не применим.
Я хотел бы создать небольшой класс с атрибутами, которые будут соответствовать имени и атрибутам в выводе, знакомом потоку xml. Класс должен помочь программе создать строку, похожую на xml.
string test = "<graph caption='SomeHeader' attribute9='#someotherinfo'>" +
"<set name='2004' value='37800' color='AFD8F8' />" +
"<set name='2005' value='21900' color='F6BD0F' />" +
"<set name='2006' value='32900' color='8BBA00' />" +
"<set name='2007' value='39800' color='FF8E46' />" +
"</graph>";
Я думаю, у тебя есть идея. У меня есть статическое количество известных атрибутов, которые будут использоваться в тегах. Единственные теги здесь - это set и graph .
Я бы хотел сделать что-то подобное,
Helper o = new Helper()
List<Tag> tag = new List<Tag>();
foreach (var someitem in somedatabaseresult)
{
tag.Add(New Graph() { Caption = someitem.field , attribute9 = someitem.otherField });
foreach (var detail in someitem)
{
tag.Add(new Set() { name = detail.Year, value = detail.Value color = detail.Color });
}
}
o.Generate(); // Which will create the structure of result sample above
// and for future extension..
// o.GenerateXml();
// o.GenerateJson();
Пожалуйста, помните, что этот код - песо, только что взят из моей головы. В результате у меня есть некоторые идеи, но это займет день, чтобы написать код и проверить, что лучше (или whorse).
Что было бы лучшим решением для решения этой задачи?
[EDIT]
Этот таинственный «Помощник» - это класс (не типизированный), который содержит список Graph, список Set, а также (о чем я думаю) содержит все доступные атрибуты для объекта Graph / Set. Упомянутая выше работа циклов foreach заполняет класс Helper данными.
[EDIT2]
Результат здесь,
https://gist.github.com/1233331