Xml Serialization
От: ignaci_v Украина  
Дата: 11.08.06 14:48
Оценка:
Подскажите пожалуйста почему в этом примере не проходит Xml сериализация объекта типа TestClass?
я уже незнаю что с ним делать что-бы это заработало. Помогите пожалуйста!!!


    [Serializable]
    public class TestClass
    {
        private string _name = string.Empty;
        private int _intValue = int.MinValue;
        private object _element = null;

        public TestClass()
        {
        }
        public TestClass(string name, int intValue)
        {
            _name = name;
            _intValue = intValue;
            int[] list = new int[3];
            list[0] = 1;
            list[1] = 2;
            list[2] = 4;
            _element = list;
        }

        public string Name
        {
            get
            {
                return _name;
            }
            set
            {
                _name = value;
            }
        }
        public int IntValue
        {
            get
            {
                return _intValue;
            }
            set
            {
                _intValue = value;
            }
        }
        public object Element
        {
            get 
            {
                return _element;
            }
            set 
            {
                _element = value;
            }
        }
    }

    public class Program
    {
        static void Main(string[] args) 
        {
            OurContainerSerializing();
        }

        private static void OurContainerSerializing()
        {
            try
            {
                TestClass obj = new TestClass("test1",1);

                XmlSerializer xmlSerializer = new XmlSerializer(typeof(TestClass));

                StringWriter sw = new StringWriter();
                xmlSerializer.Serialize(sw, obj);

                string xml = sw.ToString();

                StringReader sr = new StringReader(xml);
                TestClass obj1 = (TestClass)xmlSerializer.Deserialize(sr);
                int a = 1;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message + "\n" + (null!=ex.InnerException?ex.InnerException.Message:""));
            }
        }

    }
Re: Xml Serialization
От: mormat Украина mormat.org.ua
Дата: 13.08.06 09:51
Оценка:
Здравствуйте, ignaci_v, Вы писали:

_>Подскажите пожалуйста почему в этом примере не проходит Xml сериализация объекта типа TestClass?

_>я уже незнаю что с ним делать что-бы это заработало. Помогите пожалуйста!!!
private object _element = null;

поменяй на
private int[] _element;

ну и свойство тоже.
Пусто
Xml Serialization
От: Аноним  
Дата: 13.08.06 15:14
Оценка:
Не помешает добавить :
        public TestClass()
        {

        }


-- Если тебе помогли, незабудь сказать спасибо --
-- Это всё мое личное мнение которое может не совпадать с Вашим или может быть ошибочным --

.NetCoder


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Xml Serialization
От: ignaci_v Украина  
Дата: 14.08.06 07:24
Оценка:
Здравствуйте, dotnetcoder, Вы писали:

D>Не помешает добавить :
        public TestClass()
D>        {

D>        }


D>


D>
данное сообщение получено с www.gotdotnet.ru

D>ссылка на оригинальное сообщение


Эсли вы имели ввиду конструктор по умолчанию — так он есть у класса TestClass. Тут дело не в этом
проперти Element. Проперти элемент описано как object а возвращает оно екземпляр масива (int []).
И изза этого вся проблема. Но как сделать так, что-бы он даже в таком случае сериализировался?
Большее спасибо!
Re[2]: Xml Serialization
От: ignaci_v Украина  
Дата: 14.08.06 07:32
Оценка:
Здравствуйте, mormat, Вы писали:

M>Здравствуйте, ignaci_v, Вы писали:


_>>Подскажите пожалуйста почему в этом примере не проходит Xml сериализация объекта типа TestClass?

_>>я уже незнаю что с ним делать что-бы это заработало. Помогите пожалуйста!!!
M>
M>private object _element = null;
M>

M>поменяй на
M>
M>private int[] _element;
M>

M>ну и свойство тоже.

Дело в том что я немогу сделать следующию замену. Мне нужен на выходе имменно object. Это простой пример, а в реальном случае
мой класс не знает когда и что будет возвращаться свойством Element, поэтому у него и тип object (это может быть как масив,
так и любой другой тип, как сиситемный тпк и пользовательский). Неужели нельзя никак подстроить (возможно как-то с помощью атрибутов) чтобы
такая структура нормально сериализировалась?
Большое спасибо!
Re[2]: Xml Serialization
От: Dronopotamus Россия  
Дата: 14.08.06 07:37
Оценка:
Здравствуйте, ignaci_v, Вы писали:

_>Эсли вы имели ввиду конструктор по умолчанию — так он есть у класса TestClass. Тут дело не в этом

_>проперти Element. Проперти элемент описано как object а возвращает оно екземпляр масива (int []).
_>И изза этого вся проблема. Но как сделать так, что-бы он даже в таком случае сериализировался?
_>Большее спасибо!

попробуйте поэкспериментировать с атрибутами [XmlArrayItem] и [XmlArray] на проперти Element. Там можно явно указать тип элементов — может поможет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Удар судьбы в лоб означает, что не возымели действия ее пинки под зад
Re[3]: Xml Serialization
От: ignaci_v Украина  
Дата: 14.08.06 08:17
Оценка:
Здравствуйте, Dronopotamus, Вы писали:

D>Здравствуйте, ignaci_v, Вы писали:


_>>Эсли вы имели ввиду конструктор по умолчанию — так он есть у класса TestClass. Тут дело не в этом

_>>проперти Element. Проперти элемент описано как object а возвращает оно екземпляр масива (int []).
_>>И изза этого вся проблема. Но как сделать так, что-бы он даже в таком случае сериализировался?
_>>Большее спасибо!

D>попробуйте поэкспериментировать с атрибутами [XmlArrayItem] и [XmlArray] на проперти Element. Там можно явно указать тип элементов — может поможет.


Уже пробовал, возился с этими атрибутами но ничего не вышло пока.
Re: Xml Serialization
От: stump http://stump-workshop.blogspot.com/
Дата: 15.08.06 05:51
Оценка:
Здравствуйте, ignaci_v, Вы писали:

_>Подскажите пожалуйста почему в этом примере не проходит Xml сериализация объекта типа TestClass?

_>я уже незнаю что с ним делать что-бы это заработало. Помогите пожалуйста!!!

Skipped...

Вот так будет работать:

[XmlElement("Element", typeof(int[]))]
public object Element


Но лучше конечно типизированное свойство сделать...
Понедельник начинается в субботу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.