Exemplo n.º 1
0
 /// <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);
 }
Exemplo n.º 2
0
 /// <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;
 }
Exemplo n.º 3
0
        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;
        }