来自C#中不同进程的类的访问实例

时间:2018-11-14 17:29:55

标签: c# marshalling marshalbyrefobject

我有一个名为“ Core”的项目,该项目声明了一个接口。我有一个名为“ Service”的项目,该项目实例化实现该接口的类(它在依赖项上引用了“ 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方法。

0 个答案:

没有答案