Доступ к экземпляру класса из другого процесса в C#
У меня есть проект под названием "Core", который объявляет интерфейс. И у меня есть проект под названием "Сервис", который создает экземпляр класса, который реализует этот интерфейс (он ссылается на проект "Core" на его зависимости).
Оба проекта работают независимо, так как я могу запустить "Core" (это EXE). Если я это сделаю, я хотел бы проверить, запущен ли "Сервис", и если да, получить экземпляр класса, созданного в процессе "Сервис", и вызвать его метод.
Похоже на это (почти).
По проекту "Ядро":
namespace Core
{
public interface IController { void Update(long ID, string Value, string Components); }
public static class Utils
{
public static IController Controller;
internal void Main(string[] args)
{
//Here, if "Service" is running, then get "Controller" from it
}
}
}
По проекту "Сервис":
namespace Service
{
internal class ControlMe : Core.IController
{
public void Update(long ID, string Value, string Components)
{
//Do other things
}
internal void Main(string[] args)
{
Core.Utils.Controller = new ControlMe();
}
}
}
Он должен каким-то образом выделяться из одного процесса в другой, но я не знаком с методами Interop, которые бы это вызывали.