¿Cuál es la forma más fácil de comunicarse entre dos procesos en C #?

Hay dos proyectos independientes A y B (tiene su código fuente) en la misma máquina, ambos pueden comstackrse en un archivo EXE. Cuando A se está ejecutando, hay una instancia de alguna clase, digamos a , queremos que sus datos estén en B cuando se ejecute. ¿Cuál es la forma más fácil? Una pregunta de la entrevista y mi respuesta es: serialice y elimine la serialización en B. Pero el entrevistador no está satisfecho con esta respuesta porque me dijo que “puede ser más fácil”. Al fin me rendí porque no tengo ninguna solución mejor. ¿Cuáles son tus ideas?

¿Memoria mapeada archivos tal vez?

Creo que usar NamedPipes (System.IO.Pipes) NamedPipeServerStream funcionaría mejor en este caso.

Un poco tarde pero puedes hacer esto …

no puede ser mas facil

Código de servidor

 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++); } } } } 

Codigo del cliente

 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()); } } } }