Як відомо, в .Net Core, на даний момент, немає AppDomain, а WCF тільки SOAP клієнт .Net Core, WCF і ODATA клієнти.

Звичайно, завдання можна вирішити і через Web Api з WebSockets для виклику подій. Але, я просто пропоную альтернативне рішення на маршалинге по TCP/IP і створення об'єктів, і виклик методів на стороні сервера за допомогою Reflection.

Ось як виглядає віддалений виклик методів і властивостей. Приклад взято звідси Основи перевантаження операторів:

// Виведемо повідомлення в консолі сервера
string typeStr = typeof(Console).AssemblyQualifiedName;
var _Console = wrap.GetType(typeStr);// Отримаємо тип на сервері по імені
// "Hello from Client" буде виведено в консолі сервера
_Console.WriteLine("Hello from Client");

// отримаємо тип по імені класу TestDllForCoreClr.MyArr
// Із збірки TestDll.dll
var MyArr = wrap.GetType("TestDllForCoreClr.MyArr", "TestDll");

// Створимо об'єкти на стороні сервера
// і отримаємо посилання на них
var Point1 = MyArr._new(1, 12, -4); // new MyArr(1, 12, -4);
var Point2 = MyArr._new(0, -3, 18); // new MyArr(0, -3, 18);

// Всі операції з об'єктами PointX відбуваються на стороні сервера
Console.WriteLine("Координати першої точки: "+Point1.x+" "+Point1.y+" "+Point1.z);
Console.WriteLine("Координати другої точки: "+Point2.x+" "+Point2.y + " "+ Point2.z);

var Point3 = Point1 + Point2;
Console.WriteLine("\nPoint1 + Point2 = " + Point3.x + " " + Point3.y + " " + Point3.z);
Point3 = Point1 - Point2;
Console.WriteLine("Point1 - Point2 = "+ Point3.x + " " + Point3.y + " " + Point3.z);
Point3 = -Point1;
Console.WriteLine("-Point1 = " + Point3.x + " " + Point3.y + " " + Point3.z);
Point2++;
Console.WriteLine("Point2++ = "+ Point2.x + " " + Point2.y + " " + Point2.z);
Point2--;
Console.WriteLine("Point2-- = " + Point2.x + " " + Point2.y + " " + Point2.z);

Читати далі →