![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Wanderer2019 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
Всем привет!
Хотел интересующую меня информацию запихнуть в двоичный файл. Есть Класс который я для себя написал. Перед классом поставил аттрибут [Serializable] т.е. имеем объект
При написании этого класса учавствовала dll-ка SourceSafeTypeLib. При попытке
Выскакивает Exception: The type SourceSafeTypeLib.VSSItemClass in Assembly Interop.SourceSafeTypeLib, Version=5.1.0.0, Culture=neutral, PublicKeyToken=null is not marked as serializable. Значит ли это, что сериализовать объект МОЕГО класса в файл не представляется возможным??? |
||||
|
|||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Приведи код класса. Ты не сможешь сериализовать VSSItemaClass
|
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
using SourceSafeTypeLib;
|
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Напиши обертку для VSSItemClass с Serializable. И юзай ее в аррайлисте
|
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
Обертку???
можно пример какой нить простенькой обертки |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Это сообщение отредактировал(а) Exception - 12.1.2006, 18:33 |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
а методы нужно как нибудь оборачивать???
|
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Не, зачем? Разве что ты их вызывать будешь
|
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
ну вот смотри я там метод VSSItem вызываю:
ну вот... в данном слчае get_Versions(int) каким то образом оборачивать не надо? Exception Спасибо за помощь! |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Не, не нужно. Суть в том, что вместо несериализуемых итемов сериализуется твой класс.
|
|||
|
||||
| dronzo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 26.11.2005 Где: Москва Репутация: 6 Всего: 8 |
М-да. Сейчас пока просматривал заметки, наткнулся на такую штуку, как ISerializationSurrogate (it provides you the ability to serialize a type that was not originally designed to be serialized). Сам только что наткнулся, так что вряд ли много смогу помочь, но сам вникаю. Посмотри в MSDN что и как , а я сейчас на коленке попробую накатать, так что не обессудь. Заодно и сам проверю, как понял
PS Будет работать или нет - не знаю Это сообщение отредактировал(а) dronzo - 12.1.2006, 22:55 |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Супер! +1
|
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
вот нашел простой пример по этому поводу:
http://www.codeproject.com/dotnet/Surrogat...rialization.asp Всем спасибо! Попробую поставить + =) |
|||
|
||||
| Wanderer2019 |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
Вот что у меня в результате всего этого получилось.
Написал этот surrogate пока что хотя бы на одно поле (остальные там все все равно только read only так что не знаю как с ними быть). имеем:
в main-имеем:
это все отрабатывает без вопросов. в файл чего то там пишет. а вот де-сеарелизация не работает =( я пытаюсь так:
Говорит COM object with CLSID {783CD4E3-9D54-11CF-B8EE-00608CC9A71F} is either not valid or not registered. не понимаю что это такое? что он пытается найти по этому ключу???? |
||||||
|
|||||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Проверь правильность регистрации dll-ки.
Набери regsvr32.exe -путь к dll- |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |