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