public static void Start() { RuntimeTypeModel.Default.Add(typeof(Msg), false).SetSurrogate(typeof(MsgSurrogate)); log = new Log(); client = new ClientConnect(log); client.OnMessage += (type, obj) => { switch (type) { case MsgConnectEvent.OPEN: client.Send(new Msg() { Data = typeof(mpUser), }); //client.Send(new Msg() //{ // DataAction = DataAction.DB_ADD, // Data = new mpUser() { Username = "******", Password = "******", Fullname = "Nguyễn Văn Thịnh" } //}); //msg.Send(new Msg() //{ // DataAction = DataAction.DB_ADD, // Data = new mpUser() { Username = "******", Password = "******", Fullname = "Nguyễn Cam Tu" } //}); ////new Thread(() => ////{ //// //while (true) //// //{ //// // msg.SendText(Guid.NewGuid().ToString()); //// // Thread.Sleep(3000); //// //} ////}).Start(); break; case MsgConnectEvent.CLOSE: break; case MsgConnectEvent.MESSAGE_TEXT: string text = obj as string; if (!string.IsNullOrEmpty(text)) { string code = string.Empty; if (text.Length > 1) { code = text.Substring(0, 2); } switch (code) { case "@@": ////////string src = text.Substring(2).Trim(); ////////CSharpCodeProvider provider = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v2.0" } }); ////////////CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp"); //////////CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp"); ////////CompilerParameters parameter = new CompilerParameters(); ////////// True - memory generation, false - external file generation ////////parameter.GenerateInMemory = true; ////////// True - exe file generation, false - dll file generation ////////parameter.GenerateExecutable = false; ////////parameter.ReferencedAssemblies.Add(@"System.dll"); ////////parameter.IncludeDebugInformation = false; ////////CompilerResults result = provider.CompileAssemblyFromSource(parameter, src); ////////if (result.Errors.HasErrors) ////////{ //////// StringBuilder sb = new StringBuilder(); //////// foreach (CompilerError error in result.Errors) //////// sb.AppendLine(String.Format("Error ({0}): {1}", error.ErrorNumber, error.ErrorText)); //////// string err = sb.ToString(); ////////} ////////else ////////{ //////// Assembly asm = result.CompiledAssembly; //////// string[] aName = asm.GetTypes().Select(x => x.FullName).ToArray(); //////// modelUser = asm.GetType(aName[0], false); ////////} break; } } break; case MsgConnectEvent.MESSAGE_BINARY: Msg m; try { byte[] buf = (byte[])obj; m = buf.Deserialize_Msg(); } catch (Exception ex) { } break; case MsgConnectEvent.ERROR: break; } }; //////////////////////////////////////////////////// // Start wait send and recieve message socket client.Start(); }