«Операция не поддерживается на этой платформе» при регистрации функции для события в .NET Core - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь добавить функцию в обработчик событий, которая вызовет функцию для нового события данных. Библиотека с обработчиком событий официально не поддерживает ядро ​​.NET. Я надеюсь, что есть способ заставить его работать, несмотря на это, так как это сделало бы мою жизнь намного проще, если бы я мог использовать ядро ​​.NET для своего проекта.

До сих пор я тестировал присоединение функции к событию в .NET core 2.2 и выдает следующую ошибку Operation is not supported on this platform. Если я делаю что-то подобное, используя .NET Framework 4.7, это, кажется, работает отлично.

Ошибка по существу сводится к следующей строке кода

...
_api.OnNewData += (xml) => Console.WriteLine(xml);
...

Я пробовал разные варианты этого, но до сих пор я не нашел способ заставить его работать.

Глядя на трассировку стека, мы видим, что эта ошибка возникает в функции GetComObjectData.

   at System.Runtime.InteropServices.Marshal.GetComObjectData(Object obj, Object key)
   at System.Runtime.InteropServices.ComEventsInfo.Find(Object rcw)
   at System.Runtime.InteropServices.ComEventsInfo.FromObject(Object rcw)
   at System.Runtime.InteropServices.ComEventsHelper.Combine(Object rcw, Guid iid, Int32 dispid, Delegate d)
   at System.Runtime.InteropServices.ComAwareEventInfo.AddEventHandler(Object target, Delegate handler)
   at The.Library.I.want.To.Attach.Function.To..ctor() in C:\path\to\code.cs:line 21

Есть ли способ обойти это, или я застрял с .NET Framework? Разве System.Runtime.InteropServices.Marshal.GetComObjectData не поддерживает определенные функции для ядра .NET? Если да, где я могу найти дополнительную информацию по этому вопросу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...