|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.02.2012, 12:56 | #1 |
Я
Форумчанин
Регистрация: 24.04.2010
Сообщений: 693
|
Копирование свойств объекта
Имеется 2 объекта одного типа, возникла необходимость скопировать все свойства одного объекта в другой.
Приведенный ниже код работает, но не копируются коллекции. Возможно ли встроить сюда копирование свойств вложенных классов и коллекций? Код:
Нужно что-то вроде Код:
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©. Последний раз редактировалось mrChester; 13.02.2012 в 12:58. |
13.02.2012, 21:32 | #2 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
Честно говоря копировать через Reflection как-то не очень. Тут есть много вариантов. Вот эти я сам иногда использую. Тебе явно подойдет 2 вариант.
1. Используя MemberwiseClone Код:
Код:
|
14.02.2012, 10:55 | #3 |
Я
Форумчанин
Регистрация: 24.04.2010
Сообщений: 693
|
Прошел по ссылке, посмотрел все методы создания клона объекта... Беда в том, что объект, копию которого я хочу создать не сериализуемый, это компонента от Infragistic, сделать её сериализуемой потомком класса ICloneable или еще какого-либо не представляется возможным, остается только способ использования Reflection.
Так вот этот способ и надо развить
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©. |
14.02.2012, 11:19 | #4 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
Я бы предложил использовать ручное копирование, т.е. самому реализовать метод Clone. Просто я не знаю, что там за объект, но примерно так:
Код:
|
14.02.2012, 12:21 | #5 |
Я
Форумчанин
Регистрация: 24.04.2010
Сообщений: 693
|
Объект WorkSheet документа Excel. Нужно создать копию листа. Сам лист уже ссылается на книгу. Копия листа будет также содержаться в этой книге. Но все данные должны совпадать. Через Reflection все можно скопировать, но отдельно приходится вызывать метод для коллекций. Не получается только создать копию объектов содержащихся на листе, они содержатся в коллекции WorkSheetShapeCollection
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©. |
14.02.2012, 13:09 | #6 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
|
14.02.2012, 13:37 | #7 |
Я
Форумчанин
Регистрация: 24.04.2010
Сообщений: 693
|
Нет, методы Interop.Excel не подходят, если бы использовалась эта библиотека, не появилось бы такой проблемы. Использую Infragistics.Excel.
Там вообще нет подобных методов, банальную вставку строки или копирование ячеек приходится реализовывать руками. При этом не забываем о форматах, таблицах, формулах. Вот и появилась эта проблема. Пока идей о копировании вставленных рисунков и диаграмм при копировании листов нет.
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©. |
16.02.2012, 16:28 | #8 |
Я
Форумчанин
Регистрация: 24.04.2010
Сообщений: 693
|
Связался с техподдержкой Infragistics, проблема не решаемая. Обещали в будущих версиях предусмотреть
Думаю тему можно закрыть
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Изменение свойств объекта не активируя его | ndvikulov | Microsoft Office Excel | 16 | 16.09.2010 20:14 |
Cкрипт с использованием объекта layer, его свойств и методов | Zempery | JavaScript, Ajax | 0 | 05.04.2010 12:09 |
Cкрипт с использованием объекта layer, его свойств и методов | Zempery | Помощь студентам | 0 | 05.04.2010 11:41 |
Изменение свойств объекта во время выполнения процедуры | Gypsy | Общие вопросы Delphi | 4 | 28.12.2009 11:49 |
С помощью методов и свойств объекта осуществляется управление терминалом. Имя (идентификатор) объекта | User>lia | Общие вопросы Delphi | 4 | 16.01.2009 16:37 |