Реализовать тип или коллекцию на основе имеющихся данных.
Нужно реализовать тип или коллекцию на основе имеющихся данных.
Например:
Мне приходить список полей в виде XML из которых нужно сделать определенный контрол, в данном случае ComboBox.
Но у этих полей есть справочники, которые приходят отдельно и их надо как-то сопоставить и сохранить.
Примеры методов и словарей к ним ниже:
Метод:
Код:
<Method Name="Города справочник" type="ComboDictionary" DictionaryId="3" FilterField="@keyCodeForCities">
<values>
<pair dic="ID" QF="@ID"/>
<pair dic="Name" QF="Город"/>
</values>
</Method>
<values>
<pair dic="ID" QF="@ID"/>
<pair dic="Name" QF="Город"/>
</values>
</Method>
Словарь:
Код:
<NewDataSet>
<City>
<ID>17</ID>
<Name>г.Александровск Артемовский</Name>
</City>
<City>
<ID>18</ID>
<Name>г.Луганск Артемовский</Name>
</City>
</NewDataSet>
<City>
<ID>17</ID>
<Name>г.Александровск Артемовский</Name>
</City>
<City>
<ID>18</ID>
<Name>г.Луганск Артемовский</Name>
</City>
</NewDataSet>
Код:
<Method Name="Улица справочник" type="ComboDictionary" DictionaryId="3" FilterField="@keyCodeForStreets">
<values>
<pair dic="ID" QF="@ID"/>
<pair dic="CityID" QF="@CityId"/>
<pair dic="Name" QF="Улица"/>
</values>
</Method>
<values>
<pair dic="ID" QF="@ID"/>
<pair dic="CityID" QF="@CityId"/>
<pair dic="Name" QF="Улица"/>
</values>
</Method>
Словарь:
Код:
<NewDataSet>
<City>
<ID>1</ID>
<CityID></CityID>
<Name>Коцюбинского ул.</Name>
</City>
<City>
<ID>2</ID>
<CityID></CityID>
<Name>Героев ВОВ пл.</Name>
</City>
</NewDataSet>
<City>
<ID>1</ID>
<CityID></CityID>
<Name>Коцюбинского ул.</Name>
</City>
<City>
<ID>2</ID>
<CityID></CityID>
<Name>Героев ВОВ пл.</Name>
</City>
</NewDataSet>
Метод:
Код:
<Method Name="NewComboDictionary1" type="ComboDictionary" ReadOnly="true" DictionaryId="1125" FilterField="@aaaaa">
<values>
<pair dic="Kagent" QF="Выбор службы"/>
<pair dic="Id" QF="Код службы"/>
</values>
</Method>
<values>
<pair dic="Kagent" QF="Выбор службы"/>
<pair dic="Id" QF="Код службы"/>
</values>
</Method>
Словарь:
Код:
<NewDataSet>
<row Id="31" Kagent="ДКПП ОАО "КРАЯН""/>
<row Id="50" Kagent="ОАО "ОДЕССАГАЗ""/>
<row Id="107" Kagent="ОСМД "ПИОНЕР""/>
<row Id="6010" Kagent="КП ЖКС "СЕВЕРНЫЙ""/>
<row Id="6020" Kagent="КП ЖКС "ПЕРЕСЫПСКИЙ""/>
</NewDataSet>
<row Id="31" Kagent="ДКПП ОАО "КРАЯН""/>
<row Id="50" Kagent="ОАО "ОДЕССАГАЗ""/>
<row Id="107" Kagent="ОСМД "ПИОНЕР""/>
<row Id="6010" Kagent="КП ЖКС "СЕВЕРНЫЙ""/>
<row Id="6020" Kagent="КП ЖКС "ПЕРЕСЫПСКИЙ""/>
</NewDataSet>
Код:
public class OrganizationMethod
{
public string Name { get; set; }
public string Type { get; set; }
public readonly List<MethodValues> values = new List<MethodValues>();
public string FieldName { get; set; }
public int DictionaryId { get; set; }
private string _filterField = string.Empty;
public string FilterField
{
get { return _filterField; }
set { _filterField = value; }
}
public string AddParams { get; set; }
public string Delimiter { get; set; }
public class MethodValues
{
public string Name { get; set; }
public readonly Dictionary<string, string> value =
new Dictionary<string, string>();
}
}
{
public string Name { get; set; }
public string Type { get; set; }
public readonly List<MethodValues> values = new List<MethodValues>();
public string FieldName { get; set; }
public int DictionaryId { get; set; }
private string _filterField = string.Empty;
public string FilterField
{
get { return _filterField; }
set { _filterField = value; }
}
public string AddParams { get; set; }
public string Delimiter { get; set; }
public class MethodValues
{
public string Name { get; set; }
public readonly Dictionary<string, string> value =
new Dictionary<string, string>();
}
}
Вопрос:
Как можно реализовать сохранения словарей, на основе элементов в методах учитывая, что элементов может быть разное количество ?
Спасибо.
Извините, но вы так не сохраняете свои данные... Они у вас уже сохранены в XML-файлах... В коде вы их не сохраняете, а реализуете определенную обработку своих данных... Чтобы сохранить тип (класс) без изменений и без трудностей считывания и записи примените сериализацию для своего типа... При этом сериализовать данные вы можете и в XML-файл...