如果我要创建一个Windows服务,它在后台调用数据库并填充各种对象。那么可以从独立的C#应用程序访问这些对象吗?如果是这样,我该怎么做?
由于
答案 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将您的应用程序与(例如)命名管道连接起来并序列化您的对象,在另一端发送和反序列化它们。