Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Бельфегор
666 / 580 / 138
Регистрация: 08.05.2009
Сообщений: 1,098
1

сериализация в asp.net странице

21.05.2011, 14:47. Просмотров 1078. Ответов 14
Метки нет (Все метки)

Доброго времени суток всем.

Такой вопрос.
Есть serializable класс. В нем обявлен делегат.
В asp.net странице создаю экземпляр этого класса. Когда из asp.net страницы обращаюсь к делегату вылетает такой вот exception.

Type 'ASP.default_aspx' in Assembly 'App_Web_df5eu2_1, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.


подскажите в чем может быть проблема.
Заранее спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2011, 14:47
Ответы с готовыми решениями:

GET-запросы к странице ASP.Net
Здравствуйте! Прошу помочь с одним вопросом: можно ли создать страничку...

ASP.Net - невидно контролы на странице
Новый WebApplication, на страницу кидаю WebForms - DropDownList, заполняю его...

Запрет автоматического вызова ф-ий JavaScript на странице ASP.NET
Добрый день! Есть страничка. На ней GridView + SqlDataSource. В GridView есть...

Как подключить базу данных postgrid к ASP.NET странице?
Как подключить базу данных postgrid к ASP.NET странице? подскажите как, плиззз...

При создании проекта ASP.NET Aplicetion выскакивает сообщение Web server is not running ASP/NET version 1.1
При создании проекта ASP.NET Aplicetion выскакивает сообщение Web server is...

14
Alligieri
CEO
Эксперт С++
2254 / 1244 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
21.05.2011, 17:11 2
Бельфегор, значит надо класс делегата тоже сделать сериализуемым
1
Бельфегор
666 / 580 / 138
Регистрация: 08.05.2009
Сообщений: 1,098
21.05.2011, 17:20  [ТС] 3
Цитата Сообщение от Бельфегор Посмотреть сообщение
Есть serializable класс. В нем обявлен делегат.
Он сериализуемый.
0
Alligieri
CEO
Эксперт С++
2254 / 1244 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
21.05.2011, 17:28 4
Бельфегор, вот что интересно - пишет то в ошибке не делегат а страницу, страницу сериализовать не получится (у меня не получилось - может кто и нашел способ ). На реализацию взглянуть можно?
1
Бельфегор
666 / 580 / 138
Регистрация: 08.05.2009
Сообщений: 1,098
21.05.2011, 17:38  [ТС] 5
Цитата Сообщение от Alligieri Посмотреть сообщение
На реализацию взглянуть можно?
Извините я не понял на реализацию чего?

Добавлено через 8 минут
Цитата Сообщение от Alligieri Посмотреть сообщение
Бельфегор, вот что интересно - пишет то в ошибке не делегат а страницу, страницу сериализовать не получится (у меня не получилось - может кто и нашел способ ). На реализацию взглянуть можно?
Если я правильно понял чтобы использовать сериализованый класс в асп странице страницу тоже нужно сериализовать. Если так, то почему экземпляр класса создается нормально, его методы тоже нормально вызываются, а вот с делегатами проблема?
0
Alligieri
CEO
Эксперт С++
2254 / 1244 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
21.05.2011, 17:43 6
Цитата Сообщение от Бельфегор Посмотреть сообщение
Извините я не понял на реализацию чего?
класса с делегатом, и соответственно вызов делегата в странице
1
Бельфегор
666 / 580 / 138
Регистрация: 08.05.2009
Сообщений: 1,098
21.05.2011, 17:48  [ТС] 7
в них слишком много кода, приведу только нужные части

C#
1
2
3
4
public delegate bool LevelValidationHandler(string methodName);
 
    [Serializable()]
    public class Client
также в классе есть такое свойство

C#
1
public LevelValidationHandler _levelValidationHandler = null;
и кое где в классе _levelValidationHandler проверяется на равность нулю.

далее в asp странице создается экземпляр класса и такой код

C#
1
2
3
4
5
6
static Client client = new Client();
client._levelValidationHandler = abc;
public bool abc(string Name)
        {
            return true;
        }
и выходит ошибка. одако методы класса вызываются и работают нормально.
0
Alligieri
CEO
Эксперт С++
2254 / 1244 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
21.05.2011, 17:54 8
Цитата Сообщение от Бельфегор Посмотреть сообщение
public bool abc(string Name)
* * * * {
* * * * * * return true;
* * * * }
это метод ASP.NET страницы? вы же пытаетесь передать метод несереализированного класса в класс сериализированного делегата - так не получится
1
Бельфегор
666 / 580 / 138
Регистрация: 08.05.2009
Сообщений: 1,098
21.05.2011, 17:57  [ТС] 9
да abc метод asp страницы.
Однако класс Client нельзя менять. можете предложить какое то решение, буду очень благодарен.
0
Alligieri
CEO
Эксперт С++
2254 / 1244 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
21.05.2011, 18:23 10
Цитата Сообщение от Бельфегор Посмотреть сообщение
можете предложить какое то решение, буду очень благодарен.
мне ж неизвестно что вы пытаетесь делать передача метода страницы в делегат стороннего класса - это уже выглядит крайне странно должен быть другой способ
1
Бельфегор
666 / 580 / 138
Регистрация: 08.05.2009
Сообщений: 1,098
21.05.2011, 18:29  [ТС] 11
Цитата Сообщение от Alligieri Посмотреть сообщение
мне ж неизвестно что вы пытаетесь делать передача метода страницы в делегат стороннего класса - это уже выглядит крайне странно должен быть другой способ
Ситуация такая: класс клиент изменить нелзя он уже используетсья другими приложениями, а в классе обрабатывается тот самый делегат, если он равен нулю, то выбрасывается ексепшн и работать дальше не возможно, поэтому делегату по любому нужно передать метод. Кстати в проекте из винформ(они не сериализованные ) метод передан. Код написан не мной по этому строго не судите. Мне крайне важно обработаь тот самый делегат.
0
Johnny_D
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,842
22.05.2011, 13:50 12
Бельфегор, если класс клиент в исходнике, то просто используем наследование и переопределяем фукнционал.
0
Бельфегор
666 / 580 / 138
Регистрация: 08.05.2009
Сообщений: 1,098
23.05.2011, 13:08  [ТС] 13
Всем огромное спасибо вопрос закрыт.
Все окозалось очень просто, я не заметил что делегату нужно было приписывать метод до вызова другово метода из класса.

Кстати Alligieri окозалось что из несериализованного класса возможно передать метод делегату сериализованного класса.
1
Alligieri
CEO
Эксперт С++
2254 / 1244 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
23.05.2011, 13:22 14
Цитата Сообщение от Бельфегор Посмотреть сообщение
Кстати Alligieri окозалось что из несериализованного класса возможно передать метод делегату сериализованного класса
возможно сам делегат таки не сериализуется? надо б проверить ну а так - интересный опыт получился
1
Бельфегор
666 / 580 / 138
Регистрация: 08.05.2009
Сообщений: 1,098
23.05.2011, 17:27  [ТС] 15
Цитата Сообщение от Alligieri Посмотреть сообщение
возможно сам делегат таки не сериализуется? надо б проверить ну а так - интересный опыт получился
не спорю очень даже может быть. Будет время проверю отпишусь. Спасибо за старания.
1
23.05.2011, 17:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2011, 17:27

Client ASP.NET MVC + Angular и Server side ASP.NET WEB.API
Доброго времени суток! Не первый день бьюсь над задачей, не могу понять в чем...

Объясните в двух словах, в чём отличие ASP.NET от ASP.NET MVC
Можно и не в двух...

Что нужно иметь виндам XP, чтобы работали ASP, не ASP.NET, а просто ASP?
Что нужно иметь виндам XP, чтобы работали ASP, не ASP.NET, а просто ASP? Или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru