public ClassDeserializer(ClassManager parent)
        {
            m_parent = parent;

            var an = new AssemblyName()
            {
                Name = "HelloReflectionEmit"
            };

            m_ad = AppDomain.CurrentDomain;
            m_ab = m_ad.DefineDynamicAssembly(an, System.Reflection.Emit.AssemblyBuilderAccess.RunAndSave);
            m_mb = m_ab.DefineDynamicModule(an.Name, "Hello.exe");

            m_stack = new Stack<ClassFrame>();
        }
 public RemoteRunnerConnection(RemoteRunner parent, TcpClient client)
 {
     m_parent = parent;
     m_client = client;
     m_stream = m_client.GetStream();
     m_output = new ObjectDeserializer(m_stream);
     m_manager = new ClassManager();
     m_manager.AddProvider(((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString(), RemoteRunner.CodePort);
     m_output.TypeProviders += (o, e) =>
     {
         if (!e.TypeFound)
         {
             var t = m_manager.RequestType(e.TypeName);
             if (t != null)
                 e.SetResult(t);
         }
     };
 }