在同一台机器上有两个独立的项目A和B(你有他们的源代码),两者都可以编译成EXE文件。当A运行时,有一个类的实例,比方说a
,我们希望它在运行时在B中的数据。什么是最简单的方法?面试问题和我的回答是:序列化并在B中反序列化。但是面试官对这个答案不满意,因为他告诉我“它可以更容易”。最后我放弃了,因为我没有更好的解决方案。你有什么想法?
答案 0 :(得分:5)
答案 1 :(得分:1)
我认为在这种情况下使用NamedPipes (System.IO.Pipes)
NamedPipeServerStream会更好。
答案 2 :(得分:0)
有点晚了但你可以这样做......
不容易
服务器代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Server
{
class Program
{
static void Main(string[] args)
{
var i = 0;
while(true)
{
Console.WriteLine(Console.ReadLine() + " -> " + i++);
}
}
}
}
客户代码
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
namespace Client
{
class Program
{
static void Main(string[] args)
{
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.FileName = "Server.exe";
p.Start();
var t = new Thread(() => { while (true) { Console.WriteLine(p.StandardOutput.ReadLine()); }});
t.Start();
while (true)
{
p.StandardInput.WriteLine(Console.ReadLine());
}
}
}
}