Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > сериализация статического класса


Автор: stashe 13.4.2007, 16:04
вот была тема касательно сериализации....был такой пост
Код

   MyWindow myWindow = new MyWindow(); // создали объект, установили какие-то свойства и т.д.
            ....
   XmlTextWriter writer = new XmlTextWriter("C:\\Config.xml", Encoding.UTF8);
   XmlSerializer xs = new XmlSerializer(typeof(MyWindow));
   xs.Serialize(writer, myWindow); // сериализовали объект myWindow
   writer.Close();


а возможно ли сделать то же самое, тока со статическим классом? понимаю что написал полный бред, но может есть какой-нить прием как запихнуть одним махом в xml статический класс??? smile 

Автор: stashe 13.4.2007, 16:28
Код

  XmlWriterSettings settings = new XmlWriterSettings();
             settings.Indent = true;             
             XmlWriter writer = XmlWriter.Create(config_path, settings);
             writer.WriteStartDocument();
             writer.WriteStartElement("Settings");
             writer.WriteStartElement("General_Settings");

             writer.WriteElementString("Port",ComPort);      

             writer.WriteElementString("IsLogFormVisible", IsLogVisible);
             writer.WriteElementString("ShowLogo", ShowLogo);
             writer.WriteElementString("Include_Graph", IncludeGraph);
             writer.WriteElementString("Include_Table", IncludeTable); 
             writer.WriteEndElement();
             writer.WriteStartElement("Experiments");
             writer.WriteElementString("Time", Time);
              //........... и еще ОЧЕНЬ много такого хлама, а это не дело

это все в статическом классе (((

Автор: Hurricane 14.4.2007, 02:25
Че-то я туплю. А что такое "статический класс"? Ну, я понимаю, статический метод, поле, свойство, событие, оператор... Разве тип (класс) может быть объявлен как статический? Это же не объект.

Автор: mr.DUDA 14.4.2007, 09:35
Цитата(Hurricane @  14.4.2007,  01:25 Найти цитируемый пост)
 Разве тип (класс) может быть объявлен как статический? Это же не объект.

Читайте Троелсена, статик класс - это класс в котором разрешены только статические мемберы. При наличии нестатического мембера компилятор ругнётся.

А на вопрос темы ответ может быть такой: замените статик класс на синглетон и сериализуйте экземпляр.

Автор: Hurricane 14.4.2007, 21:04
Цитата(mr.DUDA @ 14.4.2007,  01:35)
Читайте Троелсена, статик класс - это класс в котором разрешены только статические мемберы. При наличии нестатического мембера компилятор ругнётся.

Спасибо. Интересно, не знал. Вроде в VS2003 этого не было. Надо будет глянуть на досуге спецификацию C# 2.0.

А кто такой Троелсен? Страуструпп си-шарпа?  smile. Просьба не пинать сильно, я действительно с C# только начинаю работать, всю жизнь на плюсах писал.

Автор: SLeN 15.4.2007, 01:23
Мне больше по этой теме понравился Рихтер

Цитата

...
определение класса с ключевым словом static заставляет компилятор сделать этот класс абстрактным и изолированным, более того компилятор не создает в классе метод конструктора.
...

ну и со всеми вытекающими

Автор: stashe 16.4.2007, 09:32
спасибо ))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)