Преобразование сериализации в .NET на лету - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть узел, содержащий значения с разделителями в файле XML, который я десериализирую (System.Xml.Serialization) в класс.

Это пример узла элемента данных XML:

<Data>1,2,3,4,8,11<Data>

Можно ли разделить целочисленные данные в процессе десериализации, чтобы строка данных была преобразована в список свойств, подобный следующему:

List<int> Data {get; set;}

1 Ответ

1 голос
/ 24 ноября 2011

Я бы рекомендовал использовать LINQ to XML для сериализации, но если вы используете System.Xml.Serialization, вы можете выполнить это, используя пользовательский установщик для свойства String, которое разделяет строку и заполняет свойство List.

List listData {get; set;}
String Data
{
    get
    {
       return String.Empty;
    }
    set
    {
        listData.AddRange(value.Split(','));
    }
}

ПОСЛЕ РЕДАКТИРОВАНИЯ Муним

После того, как Minim добавил универсальный <int>, сеттер должен выглядеть следующим образом:

set
{
    string[] temp = value.Split(',');
    foreach (string s in temp)
        listData.Add(Convert.ToInt32(s));
}
...