Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запретить сериализовать свойство, XmlSerializer 
V
    Опции темы
Kolovorot
Дата 22.4.2010, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 12.1.2009

Репутация: нет
Всего: 3



Можно ли запретить сериализовать свойство, если значение поля, которое используется в свойстве, есть null? И скажется ли это на дальнейшей десериализации.  Сериализую с помощью XmlSerializer.

Код

   private SomeClass someObj;

   public String SomeString
   {
      get{ return someObj.someString;}
      set{ someObj = new (value);}
   }


--------------------
Никогда еще истина не повисала на руке безусловного. Фридрих Ницше. Так говорил Заратустра
PM MAIL   Вверх
azesmcar
Дата 22.4.2010, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



PM   Вверх
Kolovorot
Дата 22.4.2010, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 12.1.2009

Репутация: нет
Всего: 3



Цитата(azesmcar @ 22.4.2010,  15:06)


конкретно
http://msdn.microsoft.com/en-us/library/sy...e(v=VS.71).aspx

Можно ли аттрибут [XmlIgnore] устанавливать как-то программно. Если someObj = null, установать, иначе убрать?
--------------------
Никогда еще истина не повисала на руке безусловного. Фридрих Ницше. Так говорил Заратустра
PM MAIL   Вверх
azesmcar
Дата 22.4.2010, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



вот пример
Код

    public class A
    {
        public int a;
        public int b;
        [XmlIgnore]
        public bool bSpecified {
            get { return a > 10; }
        }
    }

b не будет сериализировано, если а <= 10.
PM   Вверх
Kolovorot
Дата 22.4.2010, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 12.1.2009

Репутация: нет
Всего: 3



Благодарю, azesmcar. 
Я вначале подумал, что это работать не будет. smile  Попробывал и заработало. Интуитивно смысл понятен. А где можно про это прочитать? Если можно на русском, ну а если нет то на английском.
--------------------
Никогда еще истина не повисала на руке безусловного. Фридрих Ницше. Так говорил Заратустра
PM MAIL   Вверх
azesmcar
Дата 23.4.2010, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата(Kolovorot @  22.4.2010,  22:05 Найти цитируемый пост)
Я вначале подумал, что это работать не будет. smile  Попробывал и заработало. 

smile 

Цитата(Kolovorot @  22.4.2010,  22:05 Найти цитируемый пост)
А где можно про это прочитать? Если можно на русском, ну а если нет то на английском. 

http://msdn.microsoft.com/en-us/library/dd...office.11).aspx
http://msdn.microsoft.com/en-us/library/53b8022e(VS.71).aspx
тут описан метод ShouldSerialize, делает тоже самое, просто название другое, в принципе наверное так лучше.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1157 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.