/// <summary> /// 设置状态码 /// </summary> /// <param name="returnCode"></param> /// <param name="data"></param> public MessageInfo <T> SetStatusCode(ReturnCodeType returnCode, T data) { status = (int)returnCode; msg = GetEnumDescription(returnCode); this.data = data; return(this); }
/// <summary> /// 构造函数 /// </summary> /// <param name="errcode"></param> /// <param name="errMsg"></param> /// <param name="success"></param> public BaseResultJson(ReturnCodeType Code, string Msg, object Data) { this.Code = Code; this.Msg = Msg; this.Data = Data; }
public static void Evaluate(string code, ReturnCodeType retType, out object retVal) { CSharpCodeProvider c = new CSharpCodeProvider(); CompilerParameters cp = new CompilerParameters(); string strRetType = string.Empty; switch (retType) { case ReturnCodeType.Text: strRetType = "string"; break; case ReturnCodeType.Number: strRetType = "double"; break; case ReturnCodeType.Boolean: strRetType = "bool"; break; default: strRetType = "string"; break; } cp.ReferencedAssemblies.Add("system.dll"); cp.ReferencedAssemblies.Add("system.xml.dll"); cp.ReferencedAssemblies.Add("system.data.dll"); cp.CompilerOptions = "/t:library"; cp.GenerateInMemory = true; StringBuilder sb = new StringBuilder(""); sb.Append("using System;\n"); sb.Append("using System.IO;\n"); sb.Append("using System.Xml;\n"); sb.Append("using System.Data;\n"); sb.Append("namespace CSCodeEvaler{ \n"); sb.Append("public class CSCodeEvaler{ \n"); sb.Append("public " + strRetType + " EvalCode(){\n"); sb.Append("return " + code + "; \n"); sb.Append("} \n"); sb.Append("} \n"); sb.Append("}\n"); CompilerResults cr = c.CompileAssemblyFromSource(cp, sb.ToString()); if (cr.Errors.Count > 0) { throw new ArgumentException("The expression '" + code + "' does not compile to C#", cr.Errors[0].ErrorText); } System.Reflection.Assembly a = cr.CompiledAssembly; object o = a.CreateInstance("CSCodeEvaler.CSCodeEvaler"); Type t = o.GetType(); MethodInfo mi = t.GetMethod("EvalCode"); object s = mi.Invoke(o, null); retVal = s; return; }