访问在Windows服务中创建的对象

时间:2018-05-29 07:27:59

标签: c# windows-services

如果我要创建一个Windows服务,它在后台调用数据库并填充各种对象。那么可以从独立的C#应用​​程序访问这些对象吗?如果是这样,我该怎么做?

由于

2 个答案:

答案 0 :(得分:0)

只需使用Named Pipes即可在两个.Net应用程序之间进行通信。

这应该放在服务中以监听客户端应用程序请求

private static void SendByteAndReceiveResponse()
 {           
     using (NamedPipeServerStream namedPipeServer = new 
      NamedPipeServerStream("test-pipe"))
     {
    namedPipeServer.WaitForConnection();
    namedPipeServer.WriteByte(1);
    int byteFromClient = namedPipeServer.ReadByte();
    Console.WriteLine(byteFromClient);
  }
}

这将在客户端应用程序

    private static void ReceiveByteAndRespond()
   {           
      using (NamedPipeClientStream namedPipeClient = new 
      NamedPipeClientStream("test-pipe"))
     {
    namedPipeClient.Connect();
    Console.WriteLine(namedPipeClient.ReadByte());
    namedPipeClient.WriteByte(2);
   }
}

注意

请在

中进行更改
  

namedPipeClient.WriteByte(2);

根据您的业务逻辑。

请阅读this主题

答案 1 :(得分:0)

严格来说,无法访问对象。您可以根据@Taha Sultan Temuri将您的应用程序与(例如)命名管道连接起来并序列化您的对象,在另一端发送和反序列化它们。