Я играю с страницей asp.net, использующей интерфейс IScriptControl для передачи данных из кода в пользовательский объект javascript, работающий в браузере.Передача сложных объектов в javascript через IScriptControl
Я передаю несколько свойств через IScriptControl.GetScriptDescriptors(), и все они работают нормально, за исключением одного.
Этот класс является производным от System.Collections.Generic.Dictionary <>. И даже тот, кто работал для меня, пока элементы в коллекции были скалярами - ints, doubles и strings. Но когда я попытался передать член класса, он появился как нулевой объект в javascript. Класс, о котором идет речь, отмечен [Serializable]. Я изменил его на структуру и получил то же поведение.
Похоже, что сериализатор, используемый в IScriptControl, выполняет мелкую копию. Мне нужна глубокая копия.
Любые идеи?
IScriptControl - это интерфейс, какой класс вы используете, который это реализует? Или, как выглядит ваше определение GetScriptDescriptors()? EDIT: неважно, вы передаете свои объекты через ScriptControlDescriptor.AddProperty, правильно? ОК. –
Точно. И это сериализует объект, но только на один уровень. –