Описание: Существует некий объект, держащий COM-интерфейс. Необходимо его отобразить на странице в виде JavaScript объекта (JSON-сериализация). Так как в явную такая сериализация не проходит, создаю обёртку C# класса, пронаследованного от этого интерфейса. Всё отлично, но оказалось, что некоторые свойства (Property) сериализовать не нужно.
Вопрос: как отключить сериализацию для таких свойств?
ЗЫ: для JSON-сериализации использую System.Web.Script.Serialization.JavaScriptSerializer
Re: Отключение сериализации для некоторых свойств COM объект
JTG>Вопрос: как отключить сериализацию для таких свойств?
ммм... ручками сериализовать?...
хотя не вполне понимаю об чём речь, поэтому может и глупость сморозил
всю ночь не ем, весь день не сплю — устаю
Re: Отключение сериализации для некоторых свойств COM объект
Здравствуйте, JohanTG, Вы писали:
JTG>Вопрос: как отключить сериализацию для таких свойств? JTG>ЗЫ: для JSON-сериализации использую System.Web.Script.Serialization.JavaScriptSerializer
посмотрите на XmlIgnorAttribute и NotSerializedAttribute, если JavaScriptSerializer эти аттрибуты поддерживает, то вам повезло, иначе только ручками сериализовать.
Re[2]: Отключение сериализации для некоторых свойств COM объ
ScriptIgnoreAttribute Class
Specifies that JavaScriptSerializer will not serialize the public property or public field. This class cannot be inherited.
Re[2]: Отключение сериализации для некоторых свойств COM объ
Здравствуйте, syrompe, Вы писали:
S>Здравствуйте, JohanTG, Вы писали:
JTG>>Вопрос: как отключить сериализацию для таких свойств? JTG>>ЗЫ: для JSON-сериализации использую System.Web.Script.Serialization.JavaScriptSerializer S>посмотрите на XmlIgnorAttribute и NotSerializedAttribute, если JavaScriptSerializer эти аттрибуты поддерживает, то вам повезло, иначе только ручками сериализовать.
В том то вся и проблема, что JavaScriptSerializer не использует атрибуты XmlIgnorAttribute и NotSerializedAttribute.
Re[3]: Отключение сериализации для некоторых свойств COM объ
Пока нашёл единственное преемлимое решение определить специфичный ля текущего класса конвертер (JavaScriptConverter) и натравить его на JavaScriptSerializer
serializer.RegisterConverters(new JavaScriptConverter[] { new MyJSConverter() });
Re[4]: Отключение сериализации для некоторых свойств COM объ
Здравствуйте, JohanTG, Вы писали:
JTG>Пока нашёл единственное преемлимое решение определить специфичный ля текущего класса конвертер (JavaScriptConverter) и натравить его на JavaScriptSerializer
А что, предложенный вариант не помог?
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Отключение сериализации для некоторых свойств COM объ
Здравствуйте, JohanTG, Вы писали:
JTG>Пока нашёл единственное преемлимое решение определить специфичный ля текущего класса конвертер (JavaScriptConverter) и натравить его на JavaScriptSerializer
JTG>serializer.RegisterConverters(new JavaScriptConverter[] { new MyJSConverter() });
честно говоря, так и не понял при чем тут конвертер.
Описание: Существует некий объект, держащий COM-интерфейс. Необходимо его отобразить на странице в виде JavaScript объекта (JSON-сериализация). Так как в явную такая сериализация не проходит, создаю обёртку C# класса, пронаследованного от этого интерфейса. Всё отлично, но оказалось, что некоторые свойства (Property) сериализовать не нужно.
Ну смотрите: у вас есть класс-обертка. В этом классе есть есть определенные свойства. Часть из этих свойтв в сериализации не нужна. Так пометьте их ScriptIgnoreAttribute. И все.
Может я что-то не так понимаю?