Я использую TCPClient
для подключения к устройству и получения некоторых данных в виде строк, затем я пытаюсь сохранить данные в БД и получаю
«Невозможно получить доступ к удаленному объекту»ошибка. "
Может быть проблема в том, что я пытаюсь сохранить в БД функцию асинхронного обратного вызова? Пожалуйста, посмотрите, вот две функции: первая получает сетевой поток, уже подключенный к устройствуи начинает чтение данных, второй - обратный вызов:
private void ReadDataAsync(NetworkStream nwStream)
{
byte[] buffer = new byte[1024];
messageStream mStream = new messageStream(nwStream, buffer);
if (nwStream.CanRead)
{
Console.WriteLine("Starting async");
nwStream.BeginRead(buffer, 0, buffer.Length,
new AsyncCallback(OnReadEndAsync), mStream);
}
else
{
Console.WriteLine("Cannot read stream");
}
}
private void OnReadEndAsync(IAsyncResult result)
{
String message = "";
messageStream mStream = (messageStream)result.AsyncState;
int incDataSize = mStream.nwStream.EndRead(result);
message = Encoding.ASCII.GetString(mStream.buffer, 0, incDataSize);
List<Event> events = new List<Event>();
events = ProcessMessage(message);
if(events.Any())
_repo.saveEventsToDB(events);
if (mStream.nwStream.CanRead)
{
mStream.nwStream.BeginRead(mStream.buffer, 0, mStream.buffer.Length,
new AsyncCallback(OnReadEndAsync), mStream);
}
}