25 / 25 / 10
Регистрация: 27.11.2011
Сообщений: 272
1

Необработанное исключение типа "System.Reflection.TargetInvocationException"

10.09.2015, 00:47. Показов 3563. Ответов 6
Метки нет (Все метки)

Добрых времени суток. Есть асинхронный сервер, к которому подулючается клиент, передает на серв данные и должен получить в ответ MethodInfo. Сервер работает нормально, List<MethodInfo> передает на клиент полностью, количество байт совпадает, судя по отладке. Но метод
C#
1
2
3
4
5
6
7
8
9
10
private static Object ByteArrayToObject(byte[] arrBytes)
        {
            if (arrBytes == null)
                return null;
            MemoryStream memStream = new MemoryStream();
            BinaryFormatter binForm = new BinaryFormatter();
            memStream.Write(arrBytes, 0, arrBytes.Length);
            memStream.Seek(0, SeekOrigin.Begin);
            return (Object)binForm.Deserialize(memStream); //тут исключение
        }
Выбрасывает исключение.
Использую данный метод так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 List<string> messageList = new List<string> { "Method1" };
            byte[] messageByte = ObjectToByte(messageList);
 
            _clientSocket.Send(messageByte);
            int rec = _clientSocket.Receive(receive);
 
            byte[] data = new byte[rec];
 
            Array.Copy(receive, data, rec);
 
            List<MethodInfo> receiveMsg = new List<MethodInfo>();
            receiveMsg.AddRange((List<MethodInfo>)ByteArrayToObject(data));// вот тут
 
            foreach (MethodInfo a in receiveMsg)
            {
                a.Invoke(null, new object[] { "param1", "param2" });
                Console.WriteLine(a.Name);
            }
Вот собственно класс с желаемым методом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
public static class ClassActionData
    {
        
        public static void Method1(object[] obj)
        {
            Console.WriteLine("Method1\n-----------------------------");
            for (int i = 0; i < obj.Count(); i++)
            {
                Console.WriteLine("Param{0}: {1}\n", i, obj[i].ToString());
            }
        }
    }
Если передавать назад на клиент обычный текст, все работает, а с MethodInfo не хочет.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2015, 00:47
Ответы с готовыми решениями:

Необработанное исключение типа "System.Net.Sockets.SocketException" в System.dll
Доброго времени суток! Есть следующая статья: Разработка прокси-сервера на C# В самом конце есть...

Необработанное исключение типа "System.ObjectDisposedException" в mscorlib.dll
Добрый день!Подскажите пожалуйста.Возникает ошибка Необработанное исключение типа...

Потоки Thread: Необработанное исключение типа "System.NullReferenceException"
Такова проблема thrListener = new Thread(KeepListening); thrListener.Start(); ... public...

Необработанное исключение типа "System.IO.IOException" произошло в mscorlib.dll
Ребят подскажите проблему при сохранение через SaveFileDialog() выдает ошибку: Необработанное...

6
Эксперт .NET
6293 / 3914 / 1575
Регистрация: 09.05.2015
Сообщений: 9,217
10.09.2015, 01:32 2
Какое исключение в InnerException у TargetInvocationException?
0
25 / 25 / 10
Регистрация: 27.11.2011
Сообщений: 272
10.09.2015, 13:57  [ТС] 3
Someone007, Вот это: "Не удалось загрузить файл или сборку "SimpleServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" либо одну из их зависимостей. Не удается найти указанный файл."
0
25 / 25 / 10
Регистрация: 27.11.2011
Сообщений: 272
11.09.2015, 18:42  [ТС] 4
Еще актуально.
0
Эксперт .NETАвтор FAQ
10370 / 5101 / 1824
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
11.09.2015, 20:04 5
llFreeManll, Зачем вы серилизуете MethodInfo? Если вы сериализуете и передаете клиенту объект MethodInfo, то на стороне клиента этот метод все равно вызвать нельзя, если у клиента нет соответствующей dll. Класс MethodInfo это всего лишь ссылка на код, но сам код этот объект не содержит.
0
25 / 25 / 10
Регистрация: 27.11.2011
Сообщений: 272
11.09.2015, 20:37  [ТС] 6
Storm23, Блин, вы правы. А с Action такая фишка прокатит?

Добавлено через 9 минут
Не прокатит как выяснилось...
0
Master of Orion
Эксперт .NET
6094 / 4950 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
11.09.2015, 22:42 7
llFreeManll, мб можно передавать Expression'ы, но не уверен.

Добавлено через 12 минут
http://stackoverflow.com/quest... serializer
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2015, 22:42
Помогаю со студенческими работами здесь

Отправка почты: "необработанное исключение отправки почты в system.Dll"
подскажите - вот пример на C#, но он мне пишет &quot;необработанное исключение отправки почты в...

Выдано исключение типа "System.OutOfMemoryException"
Доброго времени суток. Есть приложение, периодически (довольно редко) ловлю Unhandled Exception...

Выдано исключение типа "System.OutOfMemoryException"
Добрый день. Подскажите, пожалуйста, как бороться с исключением System.OutOfMemoryException?...

Исключение типа "System.StackOverfliwException"
Добрый день. В форма есть ТекстБокс и Кнопка. Ввожу текст в бокс, жму кнопку, функция обрабатывает...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru