Как сказать C# опускать создание атрибутов, которые являются значением по умолчанию во время сериализации?

Мое решение: в папке webroot я сделал ссылку на BASEROOT (с именем 'baseroot'), а затем создал файл src / View / UrlHelper

class UrlHelper extends CakeUrlHelper{
    public function webroot($file){
        //code
        if (file_exists(\Cake\Core\Configure::read('App.wwwRoot') . $file)) {       
            $webPath = $this->request->getAttribute('webroot') . $asset[0];
        }else{
           $webPath = $this->request->getAttribute('webroot').'baseroot'.DS.$asset[0];
        }
        //more code
    }
}   
5
задан MrFox 24 April 2009 в 10:10
поделиться

3 ответа

Укажите DefaultValueAttribute , и, если значение совпадает, оно не будет выведено.

12
ответ дан 18 December 2019 в 09:10
поделиться

У Роуленда есть ответ для простых значений. Для более сложных сценариев вы можете добавить метод с именем public bool ShouldSerializeFoo () (для свойства Foo ) - он возвращает false , он не получит сериализации.

6
ответ дан 18 December 2019 в 09:10
поделиться

Используйте атрибут XMLIgnore (), чтобы пометить свойство, которое должно быть включено при сериализации / десериализации.

0
ответ дан 18 December 2019 в 09:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: