cloudflight
2024-07-06 0340a1bb6012a97de0e029b26b5c882472749050
Hydraulic/Hydro.CodeProvider/Eval.cs
@@ -12,6 +12,7 @@
using System.Data;
using Hydro.CommonBase;
using System.Text.RegularExpressions;
using System.Runtime.InteropServices;
//using System.Security.Cryptography.X509Certificates;
//using Hydro.ConfigModel;
@@ -37,6 +38,7 @@
    [Serializable]
    public class Eval
    {
        public static bool 本地项目编译=false;
        int paramNum;
        string tempCode=null;
        List<string> refs = new List<string>();
@@ -59,7 +61,7 @@
        //static MyEval instance;
        //static List<MethodInfo> mis=new List<MethodInfo>();
        public static dynamic CompileTotalInstance(EvalTemplate me_temp)
        public static object CompileTotalInstance(EvalTemplate me_temp)
        {
            
            var code= me_temp.Get_code();
@@ -82,39 +84,58 @@
            }
        }
        /// <summary>
        /// 构造函数
        /// 合并编译方法
        /// </summary>
        /// <param name="CharpCode">自由编写;参数:List<double> paramArray,返回值:double;</param>
        /// <param name="num">用来做函数可行性测试,可以不填</param>
        public Eval(string CharpCode,int num,bool isCommon=false,EvalTemplate me_temp=null)
        public Eval(string CharpCode, string tempCode ,EvalTemplate me_temp,string DisplayName)
        {
            if (!isCommon)
            FunctionIndex = me_temp.Count;
            CharpCode = TreatHead(CharpCode);
            me_temp.Add_code(CharpCode, tempCode, DisplayName);
            isInit = true;
        }
        public Eval(string code)
        {
            this.tempCode = null;
            this.code = code;
            //paramNum = num;
            tmp = getInstance(true);
            if (tmp is string)
            {
                this.tempCode = EvalTemplate.TempCode_function;
                code = CharpCode;
                paramNum = num;
                tmp = getInstance();
                if (tmp is string)
                {
                    isInit = false;
                    errString = tmp.ToString();
                    return;
                }
                Type type = tmp.GetType();
                mi = type.GetMethod("myMethod");
                isInit = true;
                isInit = false;
                errString = tmp.ToString();
                return;
            }
            else
            {
                FunctionIndex = me_temp.Count;
                CharpCode = TreatHead(CharpCode);
                me_temp.Add_code(CharpCode);
                isInit = true;
            }
            isInit = true;
        }
        /// <summary>
        /// 构造
        /// </summary>
        /// <param name="CharpCode">函数的代码段</param>
        /// <param name="tempCode"></param>
        public Eval(string CharpCode, string tempCode )
        {
            //将using和import放在开头
            //独立编译
            CharpCode = TreatHead(CharpCode);
            this.tempCode = tempCode;
            code = CharpCode;
            //paramNum = num;
            tmp = getInstance(false);
            if (tmp is string)
            {
                isInit = false;
                errString = tmp.ToString();
                return;
            }
            Type type = tmp.GetType();
            mi = type.GetMethod("myMethod");
            isInit = true;
        }
        private string TreatHead(string CharpCode)
        {
            foreach (var line0 in CharpCode.Split('\n'))
@@ -142,45 +163,7 @@
            return CharpCode;
        }
        public Eval(string code)
        {
            this.tempCode = null;
            this.code = code;
            //paramNum = num;
            tmp = getInstance();
            if (tmp is string)
            {
                isInit = false;
                errString = tmp.ToString();
                return;
            }
            isInit = true;
        }
        /// <summary>
        /// 构造
        /// </summary>
        /// <param name="CharpCode">函数的代码段</param>
        /// <param name="tempCode"></param>
        public Eval(string CharpCode, string tempCode=null)
        {
            CharpCode = TreatHead(CharpCode);
            this.tempCode = tempCode;
            code = CharpCode;
            //paramNum = num;
            tmp = getInstance();
            if (tmp is string)
            {
                isInit = false;
                errString = tmp.ToString();
                return;
            }
            Type type = tmp.GetType();
            mi = type.GetMethod("myMethod");
            isInit = true;
        }
        public List<string> defaultRefs = new List<string>()
        {
@@ -207,7 +190,7 @@
        /// </summary>
        /// <param name="CharpCode"></param>
        /// <returns></returns>
        private   object getInstance()
        private   object getInstance(bool isCommon)
        {
            var d = new Dictionary<string, string>() { 
                { "CompilerVersion", "v4.0" },             
@@ -219,27 +202,56 @@
            defaultRefs.ForEach(refs => cp.ReferencedAssemblies.Add(refs));
            cp.CompilerOptions = $"/t:library /platform:anycpu /optimize+";
            cp.GenerateInMemory = true;
            StringBuilder sourceCode = new StringBuilder();
            //return paramArray[0] + paramArray[1] * 3 + paramArray[2];
            if (tempCode!=null)
            if (tempCode != null)
            {
                sourceCode.Append(tempCode.Replace("{0}", code));
            }
            else
            {
                sourceCode.Append(code);
            }
#if DEBUG
            if (isCommon )
            {
                //禁用cp的优化编译
                var path = @"..\..\Hydro\Hydro.DynamicDll\myLib.cs";// files.BasePath + ".cs";
                                                        //将sourceCode.ToString()输出到文件
                                                        //判断path的文件内容是否和sourceCode.ToString()一样,如果不一样则写入
                if (!File.Exists(path) || File.ReadAllText(path) != sourceCode.ToString())
                {
                    File.WriteAllText(path, sourceCode.ToString());
                    if (本地项目编译) return $"动态编译已修改";
                }
                if (本地项目编译) { return new CoustomEval.myLib(); }
            }
            cp.CompilerOptions = $"/t:library /platform:anycpu /optimize+";
            cp.GenerateInMemory = true;
            CompilerResults cr = compiler.CompileAssemblyFromSource(cp, sourceCode.ToString());
            //cp.GenerateExecutable = true;
#else
            cp.CompilerOptions = $"/t:library /platform:anycpu /optimize+";
            cp.GenerateInMemory = true;
            CompilerResults cr = compiler.CompileAssemblyFromSource(cp,sourceCode.ToString());
#endif
            //myCode.Append("}\r\n");
            CompilerResults cr = compiler.CompileAssemblyFromSource(cp, sourceCode.ToString());
            if (cr.Errors.Count > 0)
            {
                string errString = "";
@@ -251,8 +263,9 @@
            }
            Assembly assembly = cr.CompiledAssembly;
            object tmp = assembly.CreateInstance("CoustomEval.myLib");
            var files = cr.TempFiles;
            return tmp;
            
@@ -271,19 +284,75 @@
        /// <returns></returns>
        public double getResult(List<double> paramArray, List<double[]> patternArray=null,LogicModelParams param=null,GeneticParams gParam=null)
        {
            double result;
            result = (double)mi.Invoke(tmp, new object[] { paramArray, patternArray, param, gParam });
            //result = paramArray.Count();
            return result;
#if DEBUG
            if (gParam.GlobalConfig.Ext.本地项目编译)
            {
                return DoTMethod.DoGetResult(tmp, mi, paramArray, patternArray, param, gParam);
            }
            else
            {
                return (double)mi.Invoke(tmp, new object[] { paramArray, patternArray, param, gParam });
            }
#endif
            //return mi;
            if (mi == null || tmp == null) return 0;
            try
            {
#if DEBUG
                if (gParam.GlobalConfig.Ext.本地项目编译)
                {
                    return DoTMethod.DoGetResult(tmp, mi, paramArray, patternArray, param, gParam);
                }
                else
                {
                    return (double)mi.Invoke(tmp, new object[] { paramArray, patternArray, param, gParam });
                }
#else
                double r = (double)mi.Invoke(tmp, new object[] { paramArray, patternArray, param, gParam });
                return r;
#endif
            }
            catch (Exception ex)
            {
#if DEBUG
                throw new Exception("表达式错误");
#endif
                return double.NaN;
            }
        }
        public dynamic ChangeParam(LogicModelParams param, WdnmoParam wParam,GeneticParams gParam,calcParam cParam)
        public double ChangeParam(LogicModelParams param, WdnmoParam wParam,GeneticParams gParam,calcParam cParam)
        {
            if (mi == null || tmp == null) return null;
            dynamic r = (mi.Invoke(tmp, new object[] { param, wParam, gParam, cParam }));
            return r;
            if (mi == null || tmp == null) return 0;
#if DEBUG
            if (gParam.GlobalConfig.Ext.本地项目编译)
            {
                return DoTMethod.DoChangeParamMethod(tmp, mi, param, wParam, gParam, cParam);
            }
            else
            {
                return (double)(mi.Invoke(tmp, new object[] { param, wParam, gParam, cParam }));
            }
#endif
            try
            {
                double r = (double)(mi.Invoke(tmp, new object[] { param, wParam, gParam, cParam }));
                return r;
            }
            catch (Exception ex)
            {
                wParam.ErrorMessage =$"执行预处理插件[{mi.Name}]时报错:{ex.Message}" ;
                return -1;
            }
        }
        //public dynamic ChangeResult(LogicModelParams param, WdnmoParam wParam,GeneticParams gParam,List<Result> results)
        //{
@@ -353,6 +422,10 @@
            return null;
            //return mi;
        }
    }
    public class EvalTemplate
    {
@@ -389,11 +462,11 @@
using Hydro.CommonBase;
";
        public static string TempCode_function = CommonUse+ @"
        public static string TempCode_express = CommonUse+ @"
namespace CoustomEval
{           
    [Serializable]
    class myLib
    public class myLib
    {
        public double myMethod(List<double> paramArray,List<double[]> patternArray,LogicModelParams param=null,GeneticParams gParam=null)
        {
@@ -406,18 +479,125 @@
namespace CoustomEval
{           
    [Serializable]
    class myLib
    public class myLib
    {
{0}
    }
}";
        static string functionTemp = @"
        public static string TempCode_expressCommon = @"
{2}
        public double TMethod{1}(List<double> paramArray,List<double[]> patternArray,LogicModelParams param=null,GeneticParams gParam=null)
        {
{0}
        }";
        public static string TempCode_preToolCommon = @"
{2}
        public double TMethod{1}(LogicModelParams param, WdnmoParam wParam,GeneticParams gParam,calcParam cParam)
        {
{0}
        }";
        public static string helpText_Set =
        public static string TempCode_Set = CommonUse + @"
namespace CoustomEval
{
    [Serializable]
    public class myLib
    {
        public dict<string,dict> myMethod(dict<string,dict> map_node,dict<string,dict> map_link)
        {
{0}
        }
    }
}";
        public static string TempCode_preTool = CommonUse + @"
namespace CoustomEval
{
    [Serializable]
    public class myLib
    {
        public object myMethod(LogicModelParams param, WdnmoParam wParam,GeneticParams gParam,calcParam cParam)
        {
{0}
        }
    }
}";
        List<string> codes_Total = new List<string>();
        public int Count { get { return codes_Total.Count; } }
        public void Add_code(string code,string TempCode,string DisplayName)
        {
            string Fcode =TempCode.Replace("{0}", code).Replace("{1}",codes_Total.Count.ToString()).Replace("{2}",
$@"        /// <summary>
        /// {DisplayName}
        /// </summary>");
            //对于Fcode中每一行的缩进进行处理
            var arr = Fcode.Replace("\r\n","\n").Split('\n');
            Regex reg = new Regex(@"\s*(public\s+|private\s+)?\w+\s+\w+\(");
            for (int i=6; i<arr.Length-1; i++)
            {
                //if (arr[i].StartsWith("        "))
                //{
                //    //arr[i] = arr[i].Substring(4);
                //}
                //else if (arr[i].StartsWith("    "))
                //{
                //    arr[i] = "    " + arr[i];
                //}
                //else
                //判断本行是否是函数定义的开始,使用正则表达式来判断
                //if (reg.IsMatch(arr[i]))
                //{
                //    if (i>0 && arr[i - 1].Trim()=="}")
                //    {
                //        arr[i - 1] = arr[i - 1].Substring(4);
                //    }
                //    break;
                //}
                if (arr[i].Trim() == "====}")//手动结束标记
                {
                    arr[i] = "        }";
                    //删除最后一行的}
                    arr[arr.Length - 1] = "";
                    break;
                }
                {
                    arr[i] = "            " + arr[i];
                }
            }
            Fcode = string.Join("\r\n", arr);
            codes_Total.Add(Fcode);
        }
        public string Get_code()
        {
            string fCodes= string.Join("\r\n",codes_Total.ToArray());
            return TempCode_Total.Replace("{0}",fCodes);
        }
        public void Clear()
        {
            codes_Total.Clear();
        }
        public static void fi()
        {
        }
        public static string helpText_Set =>
@"
[类型说明]
dict:字典类对象,等价于dictionary<string,object>
@@ -480,7 +660,7 @@
EN_SETTING
EN_ENERGY
";
        public static string helpText_Function =
        public static string helpText_Function =>
$@"
=======[对象说明]======
Values:用来存储多个时刻的计算结果值,单时刻计算值,长度为1;多时刻计算时,长度为时段数;
@@ -501,9 +681,9 @@
程序集框架构造如下,需要填写{{0}}中的内容:
{EvalTemplate.TempCode_function}
{EvalTemplate.TempCode_express}
";
        public static string helpText_Model =
        public static string helpText_Model =>
$@"
使用""{{变量名称}}""来引用变量,返回的是double类型。例如""{{XX流量}}""引用变量XX流量,变量的值取决于变量的数据来源
使用""{{变量名称[]}}""来引用变量的LogicPattern,返回double[]类型。
@@ -514,78 +694,667 @@
程序集框架构造如下,需要填写{{0}}中的内容:
{EvalTemplate.TempCode_PreTreat}
{EvalTemplate.TempCode_preTool}
";
        List<string> codes_Total = new List<string>();
    }
        public int Count { get { return codes_Total.Count; } }
        public void Add_code(string code)
    public class DoTMethod
    {
        public static double DoChangeParamMethod(dynamic lib,MethodInfo mi, LogicModelParams param, WdnmoParam wParam, GeneticParams gParam, calcParam cParam)
        {
            string Fcode = functionTemp.Replace("{0}", code).Replace("{1}",codes_Total.Count.ToString());
            //对于Fcode中每一行的缩进进行处理
            var arr = Fcode.Replace("\r\n","\n").Split('\n');
            for(int i=3; i<arr.Length-1; i++)
            string miName = mi.Name;
#if DEBUG
#else
            try
#endif
            {
                //if (arr[i].StartsWith("        "))
                //{
                //    //arr[i] = arr[i].Substring(4);
                //}
                //else if (arr[i].StartsWith("    "))
                //{
                //    arr[i] = "    " + arr[i];
                //}
                //else
                switch (miName)
                {
                    arr[i] = "            " + arr[i];
                    case "TMethod0": return lib.TMethod0(param, wParam, gParam, cParam);
                    case "TMethod1": return lib.TMethod1(param, wParam, gParam, cParam);
                    case "TMethod2": return lib.TMethod2(param, wParam, gParam, cParam);
                    case "TMethod3": return lib.TMethod3(param, wParam, gParam, cParam);
                    case "TMethod4": return lib.TMethod4(param, wParam, gParam, cParam);
                    case "TMethod5": return lib.TMethod5(param, wParam, gParam, cParam);
                    case "TMethod6": return lib.TMethod6(param, wParam, gParam, cParam);
                    case "TMethod7": return lib.TMethod7(param, wParam, gParam, cParam);
                    case "TMethod8": return lib.TMethod8(param, wParam, gParam, cParam);
                    case "TMethod9": return lib.TMethod9(param, wParam, gParam, cParam);
                    case "TMethod10": return lib.TMethod10(param, wParam, gParam, cParam);
                    case "TMethod11": return lib.TMethod11(param, wParam, gParam, cParam);
                    case "TMethod12": return lib.TMethod12(param, wParam, gParam, cParam);
                    case "TMethod13": return lib.TMethod13(param, wParam, gParam, cParam);
                    case "TMethod14": return lib.TMethod14(param, wParam, gParam, cParam);
                    case "TMethod15": return lib.TMethod15(param, wParam, gParam, cParam);
                    case "TMethod16": return lib.TMethod16(param, wParam, gParam, cParam);
                    case "TMethod17": return lib.TMethod17(param, wParam, gParam, cParam);
                    case "TMethod18": return lib.TMethod18(param, wParam, gParam, cParam);
                    case "TMethod19": return lib.TMethod19(param, wParam, gParam, cParam);
                    case "TMethod20": return lib.TMethod20(param, wParam, gParam, cParam);
                    case "TMethod21": return lib.TMethod21(param, wParam, gParam, cParam);
                    case "TMethod22": return lib.TMethod22(param, wParam, gParam, cParam);
                    case "TMethod23": return lib.TMethod23(param, wParam, gParam, cParam);
                    case "TMethod24": return lib.TMethod24(param, wParam, gParam, cParam);
                    case "TMethod25": return lib.TMethod25(param, wParam, gParam, cParam);
                    case "TMethod26": return lib.TMethod26(param, wParam, gParam, cParam);
                    case "TMethod27": return lib.TMethod27(param, wParam, gParam, cParam);
                    case "TMethod28": return lib.TMethod28(param, wParam, gParam, cParam);
                    case "TMethod29": return lib.TMethod29(param, wParam, gParam, cParam);
                    case "TMethod30": return lib.TMethod30(param, wParam, gParam, cParam);
                    case "TMethod31": return lib.TMethod31(param, wParam, gParam, cParam);
                    case "TMethod32": return lib.TMethod32(param, wParam, gParam, cParam);
                    case "TMethod33": return lib.TMethod33(param, wParam, gParam, cParam);
                    case "TMethod34": return lib.TMethod34(param, wParam, gParam, cParam);
                    case "TMethod35": return lib.TMethod35(param, wParam, gParam, cParam);
                    case "TMethod36": return lib.TMethod36(param, wParam, gParam, cParam);
                    case "TMethod37": return lib.TMethod37(param, wParam, gParam, cParam);
                    case "TMethod38": return lib.TMethod38(param, wParam, gParam, cParam);
                    case "TMethod39": return lib.TMethod39(param, wParam, gParam, cParam);
                    case "TMethod40": return lib.TMethod40(param, wParam, gParam, cParam);
                    case "TMethod41": return lib.TMethod41(param, wParam, gParam, cParam);
                    case "TMethod42": return lib.TMethod42(param, wParam, gParam, cParam);
                    case "TMethod43": return lib.TMethod43(param, wParam, gParam, cParam);
                    case "TMethod44": return lib.TMethod44(param, wParam, gParam, cParam);
                    case "TMethod45": return lib.TMethod45(param, wParam, gParam, cParam);
                    case "TMethod46": return lib.TMethod46(param, wParam, gParam, cParam);
                    case "TMethod47": return lib.TMethod47(param, wParam, gParam, cParam);
                    case "TMethod48": return lib.TMethod48(param, wParam, gParam, cParam);
                    case "TMethod49": return lib.TMethod49(param, wParam, gParam, cParam);
                    case "TMethod50": return lib.TMethod50(param, wParam, gParam, cParam);
                    case "TMethod51": return lib.TMethod51(param, wParam, gParam, cParam);
                    case "TMethod52": return lib.TMethod52(param, wParam, gParam, cParam);
                    case "TMethod53": return lib.TMethod53(param, wParam, gParam, cParam);
                    case "TMethod54": return lib.TMethod54(param, wParam, gParam, cParam);
                    case "TMethod55": return lib.TMethod55(param, wParam, gParam, cParam);
                    case "TMethod56": return lib.TMethod56(param, wParam, gParam, cParam);
                    case "TMethod57": return lib.TMethod57(param, wParam, gParam, cParam);
                    case "TMethod58": return lib.TMethod58(param, wParam, gParam, cParam);
                    case "TMethod59": return lib.TMethod59(param, wParam, gParam, cParam);
                    case "TMethod60": return lib.TMethod60(param, wParam, gParam, cParam);
                    case "TMethod61": return lib.TMethod61(param, wParam, gParam, cParam);
                    case "TMethod62": return lib.TMethod62(param, wParam, gParam, cParam);
                    case "TMethod63": return lib.TMethod63(param, wParam, gParam, cParam);
                    case "TMethod64": return lib.TMethod64(param, wParam, gParam, cParam);
                    case "TMethod65": return lib.TMethod65(param, wParam, gParam, cParam);
                    case "TMethod66": return lib.TMethod66(param, wParam, gParam, cParam);
                    case "TMethod67": return lib.TMethod67(param, wParam, gParam, cParam);
                    case "TMethod68": return lib.TMethod68(param, wParam, gParam, cParam);
                    case "TMethod69": return lib.TMethod69(param, wParam, gParam, cParam);
                    case "TMethod70": return lib.TMethod70(param, wParam, gParam, cParam);
                    case "TMethod71": return lib.TMethod71(param, wParam, gParam, cParam);
                    case "TMethod72": return lib.TMethod72(param, wParam, gParam, cParam);
                    case "TMethod73": return lib.TMethod73(param, wParam, gParam, cParam);
                    case "TMethod74": return lib.TMethod74(param, wParam, gParam, cParam);
                    case "TMethod75": return lib.TMethod75(param, wParam, gParam, cParam);
                    case "TMethod76": return lib.TMethod76(param, wParam, gParam, cParam);
                    case "TMethod77": return lib.TMethod77(param, wParam, gParam, cParam);
                    case "TMethod78": return lib.TMethod78(param, wParam, gParam, cParam);
                    case "TMethod79": return lib.TMethod79(param, wParam, gParam, cParam);
                    case "TMethod80": return lib.TMethod80(param, wParam, gParam, cParam);
                    case "TMethod81": return lib.TMethod81(param, wParam, gParam, cParam);
                    case "TMethod82": return lib.TMethod82(param, wParam, gParam, cParam);
                    case "TMethod83": return lib.TMethod83(param, wParam, gParam, cParam);
                    case "TMethod84": return lib.TMethod84(param, wParam, gParam, cParam);
                    case "TMethod85": return lib.TMethod85(param, wParam, gParam, cParam);
                    case "TMethod86": return lib.TMethod86(param, wParam, gParam, cParam);
                    case "TMethod87": return lib.TMethod87(param, wParam, gParam, cParam);
                    case "TMethod88": return lib.TMethod88(param, wParam, gParam, cParam);
                    case "TMethod89": return lib.TMethod89(param, wParam, gParam, cParam);
                    case "TMethod90": return lib.TMethod90(param, wParam, gParam, cParam);
                    case "TMethod91": return lib.TMethod91(param, wParam, gParam, cParam);
                    case "TMethod92": return lib.TMethod92(param, wParam, gParam, cParam);
                    case "TMethod93": return lib.TMethod93(param, wParam, gParam, cParam);
                    case "TMethod94": return lib.TMethod94(param, wParam, gParam, cParam);
                    case "TMethod95": return lib.TMethod95(param, wParam, gParam, cParam);
                    case "TMethod96": return lib.TMethod96(param, wParam, gParam, cParam);
                    case "TMethod97": return lib.TMethod97(param, wParam, gParam, cParam);
                    case "TMethod98": return lib.TMethod98(param, wParam, gParam, cParam);
                    case "TMethod99": return lib.TMethod99(param, wParam, gParam, cParam);
                    case "TMethod100": return lib.TMethod100(param, wParam, gParam, cParam);
                    case "TMethod101": return lib.TMethod101(param, wParam, gParam, cParam);
                    case "TMethod102": return lib.TMethod102(param, wParam, gParam, cParam);
                    case "TMethod103": return lib.TMethod103(param, wParam, gParam, cParam);
                    case "TMethod104": return lib.TMethod104(param, wParam, gParam, cParam);
                    case "TMethod105": return lib.TMethod105(param, wParam, gParam, cParam);
                    case "TMethod106": return lib.TMethod106(param, wParam, gParam, cParam);
                    case "TMethod107": return lib.TMethod107(param, wParam, gParam, cParam);
                    case "TMethod108": return lib.TMethod108(param, wParam, gParam, cParam);
                    case "TMethod109": return lib.TMethod109(param, wParam, gParam, cParam);
                    case "TMethod110": return lib.TMethod110(param, wParam, gParam, cParam);
                    case "TMethod111": return lib.TMethod111(param, wParam, gParam, cParam);
                    case "TMethod112": return lib.TMethod112(param, wParam, gParam, cParam);
                    case "TMethod113": return lib.TMethod113(param, wParam, gParam, cParam);
                    case "TMethod114": return lib.TMethod114(param, wParam, gParam, cParam);
                    case "TMethod115": return lib.TMethod115(param, wParam, gParam, cParam);
                    case "TMethod116": return lib.TMethod116(param, wParam, gParam, cParam);
                    case "TMethod117": return lib.TMethod117(param, wParam, gParam, cParam);
                    case "TMethod118": return lib.TMethod118(param, wParam, gParam, cParam);
                    case "TMethod119": return lib.TMethod119(param, wParam, gParam, cParam);
                    case "TMethod120": return lib.TMethod120(param, wParam, gParam, cParam);
                    case "TMethod121": return lib.TMethod121(param, wParam, gParam, cParam);
                    case "TMethod122": return lib.TMethod122(param, wParam, gParam, cParam);
                    case "TMethod123": return lib.TMethod123(param, wParam, gParam, cParam);
                    case "TMethod124": return lib.TMethod124(param, wParam, gParam, cParam);
                    case "TMethod125": return lib.TMethod125(param, wParam, gParam, cParam);
                    case "TMethod126": return lib.TMethod126(param, wParam, gParam, cParam);
                    case "TMethod127": return lib.TMethod127(param, wParam, gParam, cParam);
                    case "TMethod128": return lib.TMethod128(param, wParam, gParam, cParam);
                    case "TMethod129": return lib.TMethod129(param, wParam, gParam, cParam);
                    case "TMethod130": return lib.TMethod130(param, wParam, gParam, cParam);
                    case "TMethod131": return lib.TMethod131(param, wParam, gParam, cParam);
                    case "TMethod132": return lib.TMethod132(param, wParam, gParam, cParam);
                    case "TMethod133": return lib.TMethod133(param, wParam, gParam, cParam);
                    case "TMethod134": return lib.TMethod134(param, wParam, gParam, cParam);
                    case "TMethod135": return lib.TMethod135(param, wParam, gParam, cParam);
                    case "TMethod136": return lib.TMethod136(param, wParam, gParam, cParam);
                    case "TMethod137": return lib.TMethod137(param, wParam, gParam, cParam);
                    case "TMethod138": return lib.TMethod138(param, wParam, gParam, cParam);
                    case "TMethod139": return lib.TMethod139(param, wParam, gParam, cParam);
                    case "TMethod140": return lib.TMethod140(param, wParam, gParam, cParam);
                    case "TMethod141": return lib.TMethod141(param, wParam, gParam, cParam);
                    case "TMethod142": return lib.TMethod142(param, wParam, gParam, cParam);
                    case "TMethod143": return lib.TMethod143(param, wParam, gParam, cParam);
                    case "TMethod144": return lib.TMethod144(param, wParam, gParam, cParam);
                    case "TMethod145": return lib.TMethod145(param, wParam, gParam, cParam);
                    case "TMethod146": return lib.TMethod146(param, wParam, gParam, cParam);
                    case "TMethod147": return lib.TMethod147(param, wParam, gParam, cParam);
                    case "TMethod148": return lib.TMethod148(param, wParam, gParam, cParam);
                    case "TMethod149": return lib.TMethod149(param, wParam, gParam, cParam);
                    case "TMethod150": return lib.TMethod150(param, wParam, gParam, cParam);
                    case "TMethod151": return lib.TMethod151(param, wParam, gParam, cParam);
                    case "TMethod152": return lib.TMethod152(param, wParam, gParam, cParam);
                    case "TMethod153": return lib.TMethod153(param, wParam, gParam, cParam);
                    case "TMethod154": return lib.TMethod154(param, wParam, gParam, cParam);
                    case "TMethod155": return lib.TMethod155(param, wParam, gParam, cParam);
                    case "TMethod156": return lib.TMethod156(param, wParam, gParam, cParam);
                    case "TMethod157": return lib.TMethod157(param, wParam, gParam, cParam);
                    case "TMethod158": return lib.TMethod158(param, wParam, gParam, cParam);
                    case "TMethod159": return lib.TMethod159(param, wParam, gParam, cParam);
                    case "TMethod160": return lib.TMethod160(param, wParam, gParam, cParam);
                    case "TMethod161": return lib.TMethod161(param, wParam, gParam, cParam);
                    case "TMethod162": return lib.TMethod162(param, wParam, gParam, cParam);
                    case "TMethod163": return lib.TMethod163(param, wParam, gParam, cParam);
                    case "TMethod164": return lib.TMethod164(param, wParam, gParam, cParam);
                    case "TMethod165": return lib.TMethod165(param, wParam, gParam, cParam);
                    case "TMethod166": return lib.TMethod166(param, wParam, gParam, cParam);
                    case "TMethod167": return lib.TMethod167(param, wParam, gParam, cParam);
                    case "TMethod168": return lib.TMethod168(param, wParam, gParam, cParam);
                    case "TMethod169": return lib.TMethod169(param, wParam, gParam, cParam);
                    case "TMethod170": return lib.TMethod170(param, wParam, gParam, cParam);
                    case "TMethod171": return lib.TMethod171(param, wParam, gParam, cParam);
                    case "TMethod172": return lib.TMethod172(param, wParam, gParam, cParam);
                    case "TMethod173": return lib.TMethod173(param, wParam, gParam, cParam);
                    case "TMethod174": return lib.TMethod174(param, wParam, gParam, cParam);
                    case "TMethod175": return lib.TMethod175(param, wParam, gParam, cParam);
                    case "TMethod176": return lib.TMethod176(param, wParam, gParam, cParam);
                    case "TMethod177": return lib.TMethod177(param, wParam, gParam, cParam);
                    case "TMethod178": return lib.TMethod178(param, wParam, gParam, cParam);
                    case "TMethod179": return lib.TMethod179(param, wParam, gParam, cParam);
                    case "TMethod180": return lib.TMethod180(param, wParam, gParam, cParam);
                    case "TMethod181": return lib.TMethod181(param, wParam, gParam, cParam);
                    case "TMethod182": return lib.TMethod182(param, wParam, gParam, cParam);
                    case "TMethod183": return lib.TMethod183(param, wParam, gParam, cParam);
                    case "TMethod184": return lib.TMethod184(param, wParam, gParam, cParam);
                    case "TMethod185": return lib.TMethod185(param, wParam, gParam, cParam);
                    case "TMethod186": return lib.TMethod186(param, wParam, gParam, cParam);
                    case "TMethod187": return lib.TMethod187(param, wParam, gParam, cParam);
                    case "TMethod188": return lib.TMethod188(param, wParam, gParam, cParam);
                    case "TMethod189": return lib.TMethod189(param, wParam, gParam, cParam);
                    case "TMethod190": return lib.TMethod190(param, wParam, gParam, cParam);
                    case "TMethod191": return lib.TMethod191(param, wParam, gParam, cParam);
                    case "TMethod192": return lib.TMethod192(param, wParam, gParam, cParam);
                    case "TMethod193": return lib.TMethod193(param, wParam, gParam, cParam);
                    case "TMethod194": return lib.TMethod194(param, wParam, gParam, cParam);
                    case "TMethod195": return lib.TMethod195(param, wParam, gParam, cParam);
                    case "TMethod196": return lib.TMethod196(param, wParam, gParam, cParam);
                    case "TMethod197": return lib.TMethod197(param, wParam, gParam, cParam);
                    case "TMethod198": return lib.TMethod198(param, wParam, gParam, cParam);
                    case "TMethod199": return lib.TMethod199(param, wParam, gParam, cParam);
                    case "TMethod200": return lib.TMethod200(param, wParam, gParam, cParam);
                    case "TMethod201": return lib.TMethod201(param, wParam, gParam, cParam);
                    case "TMethod202": return lib.TMethod202(param, wParam, gParam, cParam);
                    case "TMethod203": return lib.TMethod203(param, wParam, gParam, cParam);
                    case "TMethod204": return lib.TMethod204(param, wParam, gParam, cParam);
                    case "TMethod205": return lib.TMethod205(param, wParam, gParam, cParam);
                    case "TMethod206": return lib.TMethod206(param, wParam, gParam, cParam);
                    case "TMethod207": return lib.TMethod207(param, wParam, gParam, cParam);
                    case "TMethod208": return lib.TMethod208(param, wParam, gParam, cParam);
                    case "TMethod209": return lib.TMethod209(param, wParam, gParam, cParam);
                    case "TMethod210": return lib.TMethod210(param, wParam, gParam, cParam);
                    case "TMethod211": return lib.TMethod211(param, wParam, gParam, cParam);
                    case "TMethod212": return lib.TMethod212(param, wParam, gParam, cParam);
                    case "TMethod213": return lib.TMethod213(param, wParam, gParam, cParam);
                    case "TMethod214": return lib.TMethod214(param, wParam, gParam, cParam);
                    case "TMethod215": return lib.TMethod215(param, wParam, gParam, cParam);
                    case "TMethod216": return lib.TMethod216(param, wParam, gParam, cParam);
                    case "TMethod217": return lib.TMethod217(param, wParam, gParam, cParam);
                    case "TMethod218": return lib.TMethod218(param, wParam, gParam, cParam);
                    case "TMethod219": return lib.TMethod219(param, wParam, gParam, cParam);
                    case "TMethod220": return lib.TMethod220(param, wParam, gParam, cParam);
                    case "TMethod221": return lib.TMethod221(param, wParam, gParam, cParam);
                    case "TMethod222": return lib.TMethod222(param, wParam, gParam, cParam);
                    case "TMethod223": return lib.TMethod223(param, wParam, gParam, cParam);
                    case "TMethod224": return lib.TMethod224(param, wParam, gParam, cParam);
                    case "TMethod225": return lib.TMethod225(param, wParam, gParam, cParam);
                    case "TMethod226": return lib.TMethod226(param, wParam, gParam, cParam);
                    case "TMethod227": return lib.TMethod227(param, wParam, gParam, cParam);
                    case "TMethod228": return lib.TMethod228(param, wParam, gParam, cParam);
                    case "TMethod229": return lib.TMethod229(param, wParam, gParam, cParam);
                    case "TMethod230": return lib.TMethod230(param, wParam, gParam, cParam);
                    case "TMethod231": return lib.TMethod231(param, wParam, gParam, cParam);
                    case "TMethod232": return lib.TMethod232(param, wParam, gParam, cParam);
                    case "TMethod233": return lib.TMethod233(param, wParam, gParam, cParam);
                    case "TMethod234": return lib.TMethod234(param, wParam, gParam, cParam);
                    case "TMethod235": return lib.TMethod235(param, wParam, gParam, cParam);
                    case "TMethod236": return lib.TMethod236(param, wParam, gParam, cParam);
                    case "TMethod237": return lib.TMethod237(param, wParam, gParam, cParam);
                    case "TMethod238": return lib.TMethod238(param, wParam, gParam, cParam);
                    case "TMethod239": return lib.TMethod239(param, wParam, gParam, cParam);
                    case "TMethod240": return lib.TMethod240(param, wParam, gParam, cParam);
                    case "TMethod241": return lib.TMethod241(param, wParam, gParam, cParam);
                    case "TMethod242": return lib.TMethod242(param, wParam, gParam, cParam);
                    case "TMethod243": return lib.TMethod243(param, wParam, gParam, cParam);
                    case "TMethod244": return lib.TMethod244(param, wParam, gParam, cParam);
                    case "TMethod245": return lib.TMethod245(param, wParam, gParam, cParam);
                    case "TMethod246": return lib.TMethod246(param, wParam, gParam, cParam);
                    case "TMethod247": return lib.TMethod247(param, wParam, gParam, cParam);
                    case "TMethod248": return lib.TMethod248(param, wParam, gParam, cParam);
                    case "TMethod249": return lib.TMethod249(param, wParam, gParam, cParam);
                    case "TMethod250": return lib.TMethod250(param, wParam, gParam, cParam);
                    case "TMethod251": return lib.TMethod251(param, wParam, gParam, cParam);
                    case "TMethod252": return lib.TMethod252(param, wParam, gParam, cParam);
                    case "TMethod253": return lib.TMethod253(param, wParam, gParam, cParam);
                    case "TMethod254": return lib.TMethod254(param, wParam, gParam, cParam);
                    case "TMethod255": return lib.TMethod255(param, wParam, gParam, cParam);
                    case "TMethod256": return lib.TMethod256(param, wParam, gParam, cParam);
                    case "TMethod257": return lib.TMethod257(param, wParam, gParam, cParam);
                    case "TMethod258": return lib.TMethod258(param, wParam, gParam, cParam);
                    case "TMethod259": return lib.TMethod259(param, wParam, gParam, cParam);
                    case "TMethod260": return lib.TMethod260(param, wParam, gParam, cParam);
                    case "TMethod261": return lib.TMethod261(param, wParam, gParam, cParam);
                    case "TMethod262": return lib.TMethod262(param, wParam, gParam, cParam);
                    case "TMethod263": return lib.TMethod263(param, wParam, gParam, cParam);
                    case "TMethod264": return lib.TMethod264(param, wParam, gParam, cParam);
                    case "TMethod265": return lib.TMethod265(param, wParam, gParam, cParam);
                    case "TMethod266": return lib.TMethod266(param, wParam, gParam, cParam);
                    case "TMethod267": return lib.TMethod267(param, wParam, gParam, cParam);
                    case "TMethod268": return lib.TMethod268(param, wParam, gParam, cParam);
                    case "TMethod269": return lib.TMethod269(param, wParam, gParam, cParam);
                    case "TMethod270": return lib.TMethod270(param, wParam, gParam, cParam);
                    case "TMethod271": return lib.TMethod271(param, wParam, gParam, cParam);
                    case "TMethod272": return lib.TMethod272(param, wParam, gParam, cParam);
                    case "TMethod273": return lib.TMethod273(param, wParam, gParam, cParam);
                    case "TMethod274": return lib.TMethod274(param, wParam, gParam, cParam);
                    case "TMethod275": return lib.TMethod275(param, wParam, gParam, cParam);
                    case "TMethod276": return lib.TMethod276(param, wParam, gParam, cParam);
                    case "TMethod277": return lib.TMethod277(param, wParam, gParam, cParam);
                    case "TMethod278": return lib.TMethod278(param, wParam, gParam, cParam);
                    case "TMethod279": return lib.TMethod279(param, wParam, gParam, cParam);
                    case "TMethod280": return lib.TMethod280(param, wParam, gParam, cParam);
                    case "TMethod281": return lib.TMethod281(param, wParam, gParam, cParam);
                    case "TMethod282": return lib.TMethod282(param, wParam, gParam, cParam);
                    case "TMethod283": return lib.TMethod283(param, wParam, gParam, cParam);
                    case "TMethod284": return lib.TMethod284(param, wParam, gParam, cParam);
                    case "TMethod285": return lib.TMethod285(param, wParam, gParam, cParam);
                    case "TMethod286": return lib.TMethod286(param, wParam, gParam, cParam);
                    case "TMethod287": return lib.TMethod287(param, wParam, gParam, cParam);
                    case "TMethod288": return lib.TMethod288(param, wParam, gParam, cParam);
                    case "TMethod289": return lib.TMethod289(param, wParam, gParam, cParam);
                    case "TMethod290": return lib.TMethod290(param, wParam, gParam, cParam);
                    case "TMethod291": return lib.TMethod291(param, wParam, gParam, cParam);
                    case "TMethod292": return lib.TMethod292(param, wParam, gParam, cParam);
                    case "TMethod293": return lib.TMethod293(param, wParam, gParam, cParam);
                    case "TMethod294": return lib.TMethod294(param, wParam, gParam, cParam);
                    case "TMethod295": return lib.TMethod295(param, wParam, gParam, cParam);
                    case "TMethod296": return lib.TMethod296(param, wParam, gParam, cParam);
                    case "TMethod297": return lib.TMethod297(param, wParam, gParam, cParam);
                    case "TMethod298": return lib.TMethod298(param, wParam, gParam, cParam);
                    case "TMethod299": return lib.TMethod299(param, wParam, gParam, cParam);
                    case "TMethod300": return lib.TMethod300(param, wParam, gParam, cParam);
                }
            }
#if DEBUG
#else
            catch (Exception ex)
            {
                var x = ex.Message;
                //throw (ex);
            }
#endif
            return -999;
        }
        public static double DoGetResult(dynamic lib, MethodInfo mi, List<double> paramArray, List<double[]> patternArray = null, LogicModelParams param = null, GeneticParams gParam = null)
        {
            string miName = mi.Name;
#if DEBUG
#else
            try
#endif
            {
                switch (miName)
                {
                    case "TMethod0": return lib.TMethod0(paramArray, patternArray, param, gParam);
                    case "TMethod1": return lib.TMethod1(paramArray, patternArray, param, gParam);
                    case "TMethod2": return lib.TMethod2(paramArray, patternArray, param, gParam);
                    case "TMethod3": return lib.TMethod3(paramArray, patternArray, param, gParam);
                    case "TMethod4": return lib.TMethod4(paramArray, patternArray, param, gParam);
                    case "TMethod5": return lib.TMethod5(paramArray, patternArray, param, gParam);
                    case "TMethod6": return lib.TMethod6(paramArray, patternArray, param, gParam);
                    case "TMethod7": return lib.TMethod7(paramArray, patternArray, param, gParam);
                    case "TMethod8": return lib.TMethod8(paramArray, patternArray, param, gParam);
                    case "TMethod9": return lib.TMethod9(paramArray, patternArray, param, gParam);
                    case "TMethod10": return lib.TMethod10(paramArray, patternArray, param, gParam);
                    case "TMethod11": return lib.TMethod11(paramArray, patternArray, param, gParam);
                    case "TMethod12": return lib.TMethod12(paramArray, patternArray, param, gParam);
                    case "TMethod13": return lib.TMethod13(paramArray, patternArray, param, gParam);
                    case "TMethod14": return lib.TMethod14(paramArray, patternArray, param, gParam);
                    case "TMethod15": return lib.TMethod15(paramArray, patternArray, param, gParam);
                    case "TMethod16": return lib.TMethod16(paramArray, patternArray, param, gParam);
                    case "TMethod17": return lib.TMethod17(paramArray, patternArray, param, gParam);
                    case "TMethod18": return lib.TMethod18(paramArray, patternArray, param, gParam);
                    case "TMethod19": return lib.TMethod19(paramArray, patternArray, param, gParam);
                    case "TMethod20": return lib.TMethod20(paramArray, patternArray, param, gParam);
                    case "TMethod21": return lib.TMethod21(paramArray, patternArray, param, gParam);
                    case "TMethod22": return lib.TMethod22(paramArray, patternArray, param, gParam);
                    case "TMethod23": return lib.TMethod23(paramArray, patternArray, param, gParam);
                    case "TMethod24": return lib.TMethod24(paramArray, patternArray, param, gParam);
                    case "TMethod25": return lib.TMethod25(paramArray, patternArray, param, gParam);
                    case "TMethod26": return lib.TMethod26(paramArray, patternArray, param, gParam);
                    case "TMethod27": return lib.TMethod27(paramArray, patternArray, param, gParam);
                    case "TMethod28": return lib.TMethod28(paramArray, patternArray, param, gParam);
                    case "TMethod29": return lib.TMethod29(paramArray, patternArray, param, gParam);
                    case "TMethod30": return lib.TMethod30(paramArray, patternArray, param, gParam);
                    case "TMethod31": return lib.TMethod31(paramArray, patternArray, param, gParam);
                    case "TMethod32": return lib.TMethod32(paramArray, patternArray, param, gParam);
                    case "TMethod33": return lib.TMethod33(paramArray, patternArray, param, gParam);
                    case "TMethod34": return lib.TMethod34(paramArray, patternArray, param, gParam);
                    case "TMethod35": return lib.TMethod35(paramArray, patternArray, param, gParam);
                    case "TMethod36": return lib.TMethod36(paramArray, patternArray, param, gParam);
                    case "TMethod37": return lib.TMethod37(paramArray, patternArray, param, gParam);
                    case "TMethod38": return lib.TMethod38(paramArray, patternArray, param, gParam);
                    case "TMethod39": return lib.TMethod39(paramArray, patternArray, param, gParam);
                    case "TMethod40": return lib.TMethod40(paramArray, patternArray, param, gParam);
                    case "TMethod41": return lib.TMethod41(paramArray, patternArray, param, gParam);
                    case "TMethod42": return lib.TMethod42(paramArray, patternArray, param, gParam);
                    case "TMethod43": return lib.TMethod43(paramArray, patternArray, param, gParam);
                    case "TMethod44": return lib.TMethod44(paramArray, patternArray, param, gParam);
                    case "TMethod45": return lib.TMethod45(paramArray, patternArray, param, gParam);
                    case "TMethod46": return lib.TMethod46(paramArray, patternArray, param, gParam);
                    case "TMethod47": return lib.TMethod47(paramArray, patternArray, param, gParam);
                    case "TMethod48": return lib.TMethod48(paramArray, patternArray, param, gParam);
                    case "TMethod49": return lib.TMethod49(paramArray, patternArray, param, gParam);
                    case "TMethod50": return lib.TMethod50(paramArray, patternArray, param, gParam);
                    case "TMethod51": return lib.TMethod51(paramArray, patternArray, param, gParam);
                    case "TMethod52": return lib.TMethod52(paramArray, patternArray, param, gParam);
                    case "TMethod53": return lib.TMethod53(paramArray, patternArray, param, gParam);
                    case "TMethod54": return lib.TMethod54(paramArray, patternArray, param, gParam);
                    case "TMethod55": return lib.TMethod55(paramArray, patternArray, param, gParam);
                    case "TMethod56": return lib.TMethod56(paramArray, patternArray, param, gParam);
                    case "TMethod57": return lib.TMethod57(paramArray, patternArray, param, gParam);
                    case "TMethod58": return lib.TMethod58(paramArray, patternArray, param, gParam);
                    case "TMethod59": return lib.TMethod59(paramArray, patternArray, param, gParam);
                    case "TMethod60": return lib.TMethod60(paramArray, patternArray, param, gParam);
                    case "TMethod61": return lib.TMethod61(paramArray, patternArray, param, gParam);
                    case "TMethod62": return lib.TMethod62(paramArray, patternArray, param, gParam);
                    case "TMethod63": return lib.TMethod63(paramArray, patternArray, param, gParam);
                    case "TMethod64": return lib.TMethod64(paramArray, patternArray, param, gParam);
                    case "TMethod65": return lib.TMethod65(paramArray, patternArray, param, gParam);
                    case "TMethod66": return lib.TMethod66(paramArray, patternArray, param, gParam);
                    case "TMethod67": return lib.TMethod67(paramArray, patternArray, param, gParam);
                    case "TMethod68": return lib.TMethod68(paramArray, patternArray, param, gParam);
                    case "TMethod69": return lib.TMethod69(paramArray, patternArray, param, gParam);
                    case "TMethod70": return lib.TMethod70(paramArray, patternArray, param, gParam);
                    case "TMethod71": return lib.TMethod71(paramArray, patternArray, param, gParam);
                    case "TMethod72": return lib.TMethod72(paramArray, patternArray, param, gParam);
                    case "TMethod73": return lib.TMethod73(paramArray, patternArray, param, gParam);
                    case "TMethod74": return lib.TMethod74(paramArray, patternArray, param, gParam);
                    case "TMethod75": return lib.TMethod75(paramArray, patternArray, param, gParam);
                    case "TMethod76": return lib.TMethod76(paramArray, patternArray, param, gParam);
                    case "TMethod77": return lib.TMethod77(paramArray, patternArray, param, gParam);
                    case "TMethod78": return lib.TMethod78(paramArray, patternArray, param, gParam);
                    case "TMethod79": return lib.TMethod79(paramArray, patternArray, param, gParam);
                    case "TMethod80": return lib.TMethod80(paramArray, patternArray, param, gParam);
                    case "TMethod81": return lib.TMethod81(paramArray, patternArray, param, gParam);
                    case "TMethod82": return lib.TMethod82(paramArray, patternArray, param, gParam);
                    case "TMethod83": return lib.TMethod83(paramArray, patternArray, param, gParam);
                    case "TMethod84": return lib.TMethod84(paramArray, patternArray, param, gParam);
                    case "TMethod85": return lib.TMethod85(paramArray, patternArray, param, gParam);
                    case "TMethod86": return lib.TMethod86(paramArray, patternArray, param, gParam);
                    case "TMethod87": return lib.TMethod87(paramArray, patternArray, param, gParam);
                    case "TMethod88": return lib.TMethod88(paramArray, patternArray, param, gParam);
                    case "TMethod89": return lib.TMethod89(paramArray, patternArray, param, gParam);
                    case "TMethod90": return lib.TMethod90(paramArray, patternArray, param, gParam);
                    case "TMethod91": return lib.TMethod91(paramArray, patternArray, param, gParam);
                    case "TMethod92": return lib.TMethod92(paramArray, patternArray, param, gParam);
                    case "TMethod93": return lib.TMethod93(paramArray, patternArray, param, gParam);
                    case "TMethod94": return lib.TMethod94(paramArray, patternArray, param, gParam);
                    case "TMethod95": return lib.TMethod95(paramArray, patternArray, param, gParam);
                    case "TMethod96": return lib.TMethod96(paramArray, patternArray, param, gParam);
                    case "TMethod97": return lib.TMethod97(paramArray, patternArray, param, gParam);
                    case "TMethod98": return lib.TMethod98(paramArray, patternArray, param, gParam);
                    case "TMethod99": return lib.TMethod99(paramArray, patternArray, param, gParam);
                    case "TMethod100": return lib.TMethod100(paramArray, patternArray, param, gParam);
                    case "TMethod101": return lib.TMethod101(paramArray, patternArray, param, gParam);
                    case "TMethod102": return lib.TMethod102(paramArray, patternArray, param, gParam);
                    case "TMethod103": return lib.TMethod103(paramArray, patternArray, param, gParam);
                    case "TMethod104": return lib.TMethod104(paramArray, patternArray, param, gParam);
                    case "TMethod105": return lib.TMethod105(paramArray, patternArray, param, gParam);
                    case "TMethod106": return lib.TMethod106(paramArray, patternArray, param, gParam);
                    case "TMethod107": return lib.TMethod107(paramArray, patternArray, param, gParam);
                    case "TMethod108": return lib.TMethod108(paramArray, patternArray, param, gParam);
                    case "TMethod109": return lib.TMethod109(paramArray, patternArray, param, gParam);
                    case "TMethod110": return lib.TMethod110(paramArray, patternArray, param, gParam);
                    case "TMethod111": return lib.TMethod111(paramArray, patternArray, param, gParam);
                    case "TMethod112": return lib.TMethod112(paramArray, patternArray, param, gParam);
                    case "TMethod113": return lib.TMethod113(paramArray, patternArray, param, gParam);
                    case "TMethod114": return lib.TMethod114(paramArray, patternArray, param, gParam);
                    case "TMethod115": return lib.TMethod115(paramArray, patternArray, param, gParam);
                    case "TMethod116": return lib.TMethod116(paramArray, patternArray, param, gParam);
                    case "TMethod117": return lib.TMethod117(paramArray, patternArray, param, gParam);
                    case "TMethod118": return lib.TMethod118(paramArray, patternArray, param, gParam);
                    case "TMethod119": return lib.TMethod119(paramArray, patternArray, param, gParam);
                    case "TMethod120": return lib.TMethod120(paramArray, patternArray, param, gParam);
                    case "TMethod121": return lib.TMethod121(paramArray, patternArray, param, gParam);
                    case "TMethod122": return lib.TMethod122(paramArray, patternArray, param, gParam);
                    case "TMethod123": return lib.TMethod123(paramArray, patternArray, param, gParam);
                    case "TMethod124": return lib.TMethod124(paramArray, patternArray, param, gParam);
                    case "TMethod125": return lib.TMethod125(paramArray, patternArray, param, gParam);
                    case "TMethod126": return lib.TMethod126(paramArray, patternArray, param, gParam);
                    case "TMethod127": return lib.TMethod127(paramArray, patternArray, param, gParam);
                    case "TMethod128": return lib.TMethod128(paramArray, patternArray, param, gParam);
                    case "TMethod129": return lib.TMethod129(paramArray, patternArray, param, gParam);
                    case "TMethod130": return lib.TMethod130(paramArray, patternArray, param, gParam);
                    case "TMethod131": return lib.TMethod131(paramArray, patternArray, param, gParam);
                    case "TMethod132": return lib.TMethod132(paramArray, patternArray, param, gParam);
                    case "TMethod133": return lib.TMethod133(paramArray, patternArray, param, gParam);
                    case "TMethod134": return lib.TMethod134(paramArray, patternArray, param, gParam);
                    case "TMethod135": return lib.TMethod135(paramArray, patternArray, param, gParam);
                    case "TMethod136": return lib.TMethod136(paramArray, patternArray, param, gParam);
                    case "TMethod137": return lib.TMethod137(paramArray, patternArray, param, gParam);
                    case "TMethod138": return lib.TMethod138(paramArray, patternArray, param, gParam);
                    case "TMethod139": return lib.TMethod139(paramArray, patternArray, param, gParam);
                    case "TMethod140": return lib.TMethod140(paramArray, patternArray, param, gParam);
                    case "TMethod141": return lib.TMethod141(paramArray, patternArray, param, gParam);
                    case "TMethod142": return lib.TMethod142(paramArray, patternArray, param, gParam);
                    case "TMethod143": return lib.TMethod143(paramArray, patternArray, param, gParam);
                    case "TMethod144": return lib.TMethod144(paramArray, patternArray, param, gParam);
                    case "TMethod145": return lib.TMethod145(paramArray, patternArray, param, gParam);
                    case "TMethod146": return lib.TMethod146(paramArray, patternArray, param, gParam);
                    case "TMethod147": return lib.TMethod147(paramArray, patternArray, param, gParam);
                    case "TMethod148": return lib.TMethod148(paramArray, patternArray, param, gParam);
                    case "TMethod149": return lib.TMethod149(paramArray, patternArray, param, gParam);
                    case "TMethod150": return lib.TMethod150(paramArray, patternArray, param, gParam);
                    case "TMethod151": return lib.TMethod151(paramArray, patternArray, param, gParam);
                    case "TMethod152": return lib.TMethod152(paramArray, patternArray, param, gParam);
                    case "TMethod153": return lib.TMethod153(paramArray, patternArray, param, gParam);
                    case "TMethod154": return lib.TMethod154(paramArray, patternArray, param, gParam);
                    case "TMethod155": return lib.TMethod155(paramArray, patternArray, param, gParam);
                    case "TMethod156": return lib.TMethod156(paramArray, patternArray, param, gParam);
                    case "TMethod157": return lib.TMethod157(paramArray, patternArray, param, gParam);
                    case "TMethod158": return lib.TMethod158(paramArray, patternArray, param, gParam);
                    case "TMethod159": return lib.TMethod159(paramArray, patternArray, param, gParam);
                    case "TMethod160": return lib.TMethod160(paramArray, patternArray, param, gParam);
                    case "TMethod161": return lib.TMethod161(paramArray, patternArray, param, gParam);
                    case "TMethod162": return lib.TMethod162(paramArray, patternArray, param, gParam);
                    case "TMethod163": return lib.TMethod163(paramArray, patternArray, param, gParam);
                    case "TMethod164": return lib.TMethod164(paramArray, patternArray, param, gParam);
                    case "TMethod165": return lib.TMethod165(paramArray, patternArray, param, gParam);
                    case "TMethod166": return lib.TMethod166(paramArray, patternArray, param, gParam);
                    case "TMethod167": return lib.TMethod167(paramArray, patternArray, param, gParam);
                    case "TMethod168": return lib.TMethod168(paramArray, patternArray, param, gParam);
                    case "TMethod169": return lib.TMethod169(paramArray, patternArray, param, gParam);
                    case "TMethod170": return lib.TMethod170(paramArray, patternArray, param, gParam);
                    case "TMethod171": return lib.TMethod171(paramArray, patternArray, param, gParam);
                    case "TMethod172": return lib.TMethod172(paramArray, patternArray, param, gParam);
                    case "TMethod173": return lib.TMethod173(paramArray, patternArray, param, gParam);
                    case "TMethod174": return lib.TMethod174(paramArray, patternArray, param, gParam);
                    case "TMethod175": return lib.TMethod175(paramArray, patternArray, param, gParam);
                    case "TMethod176": return lib.TMethod176(paramArray, patternArray, param, gParam);
                    case "TMethod177": return lib.TMethod177(paramArray, patternArray, param, gParam);
                    case "TMethod178": return lib.TMethod178(paramArray, patternArray, param, gParam);
                    case "TMethod179": return lib.TMethod179(paramArray, patternArray, param, gParam);
                    case "TMethod180": return lib.TMethod180(paramArray, patternArray, param, gParam);
                    case "TMethod181": return lib.TMethod181(paramArray, patternArray, param, gParam);
                    case "TMethod182": return lib.TMethod182(paramArray, patternArray, param, gParam);
                    case "TMethod183": return lib.TMethod183(paramArray, patternArray, param, gParam);
                    case "TMethod184": return lib.TMethod184(paramArray, patternArray, param, gParam);
                    case "TMethod185": return lib.TMethod185(paramArray, patternArray, param, gParam);
                    case "TMethod186": return lib.TMethod186(paramArray, patternArray, param, gParam);
                    case "TMethod187": return lib.TMethod187(paramArray, patternArray, param, gParam);
                    case "TMethod188": return lib.TMethod188(paramArray, patternArray, param, gParam);
                    case "TMethod189": return lib.TMethod189(paramArray, patternArray, param, gParam);
                    case "TMethod190": return lib.TMethod190(paramArray, patternArray, param, gParam);
                    case "TMethod191": return lib.TMethod191(paramArray, patternArray, param, gParam);
                    case "TMethod192": return lib.TMethod192(paramArray, patternArray, param, gParam);
                    case "TMethod193": return lib.TMethod193(paramArray, patternArray, param, gParam);
                    case "TMethod194": return lib.TMethod194(paramArray, patternArray, param, gParam);
                    case "TMethod195": return lib.TMethod195(paramArray, patternArray, param, gParam);
                    case "TMethod196": return lib.TMethod196(paramArray, patternArray, param, gParam);
                    case "TMethod197": return lib.TMethod197(paramArray, patternArray, param, gParam);
                    case "TMethod198": return lib.TMethod198(paramArray, patternArray, param, gParam);
                    case "TMethod199": return lib.TMethod199(paramArray, patternArray, param, gParam);
                    case "TMethod200": return lib.TMethod200(paramArray, patternArray, param, gParam);
                    case "TMethod201": return lib.TMethod201(paramArray, patternArray, param, gParam);
                    case "TMethod202": return lib.TMethod202(paramArray, patternArray, param, gParam);
                    case "TMethod203": return lib.TMethod203(paramArray, patternArray, param, gParam);
                    case "TMethod204": return lib.TMethod204(paramArray, patternArray, param, gParam);
                    case "TMethod205": return lib.TMethod205(paramArray, patternArray, param, gParam);
                    case "TMethod206": return lib.TMethod206(paramArray, patternArray, param, gParam);
                    case "TMethod207": return lib.TMethod207(paramArray, patternArray, param, gParam);
                    case "TMethod208": return lib.TMethod208(paramArray, patternArray, param, gParam);
                    case "TMethod209": return lib.TMethod209(paramArray, patternArray, param, gParam);
                    case "TMethod210": return lib.TMethod210(paramArray, patternArray, param, gParam);
                    case "TMethod211": return lib.TMethod211(paramArray, patternArray, param, gParam);
                    case "TMethod212": return lib.TMethod212(paramArray, patternArray, param, gParam);
                    case "TMethod213": return lib.TMethod213(paramArray, patternArray, param, gParam);
                    case "TMethod214": return lib.TMethod214(paramArray, patternArray, param, gParam);
                    case "TMethod215": return lib.TMethod215(paramArray, patternArray, param, gParam);
                    case "TMethod216": return lib.TMethod216(paramArray, patternArray, param, gParam);
                    case "TMethod217": return lib.TMethod217(paramArray, patternArray, param, gParam);
                    case "TMethod218": return lib.TMethod218(paramArray, patternArray, param, gParam);
                    case "TMethod219": return lib.TMethod219(paramArray, patternArray, param, gParam);
                    case "TMethod220": return lib.TMethod220(paramArray, patternArray, param, gParam);
                    case "TMethod221": return lib.TMethod221(paramArray, patternArray, param, gParam);
                    case "TMethod222": return lib.TMethod222(paramArray, patternArray, param, gParam);
                    case "TMethod223": return lib.TMethod223(paramArray, patternArray, param, gParam);
                    case "TMethod224": return lib.TMethod224(paramArray, patternArray, param, gParam);
                    case "TMethod225": return lib.TMethod225(paramArray, patternArray, param, gParam);
                    case "TMethod226": return lib.TMethod226(paramArray, patternArray, param, gParam);
                    case "TMethod227": return lib.TMethod227(paramArray, patternArray, param, gParam);
                    case "TMethod228": return lib.TMethod228(paramArray, patternArray, param, gParam);
                    case "TMethod229": return lib.TMethod229(paramArray, patternArray, param, gParam);
                    case "TMethod230": return lib.TMethod230(paramArray, patternArray, param, gParam);
                    case "TMethod231": return lib.TMethod231(paramArray, patternArray, param, gParam);
                    case "TMethod232": return lib.TMethod232(paramArray, patternArray, param, gParam);
                    case "TMethod233": return lib.TMethod233(paramArray, patternArray, param, gParam);
                    case "TMethod234": return lib.TMethod234(paramArray, patternArray, param, gParam);
                    case "TMethod235": return lib.TMethod235(paramArray, patternArray, param, gParam);
                    case "TMethod236": return lib.TMethod236(paramArray, patternArray, param, gParam);
                    case "TMethod237": return lib.TMethod237(paramArray, patternArray, param, gParam);
                    case "TMethod238": return lib.TMethod238(paramArray, patternArray, param, gParam);
                    case "TMethod239": return lib.TMethod239(paramArray, patternArray, param, gParam);
                    case "TMethod240": return lib.TMethod240(paramArray, patternArray, param, gParam);
                    case "TMethod241": return lib.TMethod241(paramArray, patternArray, param, gParam);
                    case "TMethod242": return lib.TMethod242(paramArray, patternArray, param, gParam);
                    case "TMethod243": return lib.TMethod243(paramArray, patternArray, param, gParam);
                    case "TMethod244": return lib.TMethod244(paramArray, patternArray, param, gParam);
                    case "TMethod245": return lib.TMethod245(paramArray, patternArray, param, gParam);
                    case "TMethod246": return lib.TMethod246(paramArray, patternArray, param, gParam);
                    case "TMethod247": return lib.TMethod247(paramArray, patternArray, param, gParam);
                    case "TMethod248": return lib.TMethod248(paramArray, patternArray, param, gParam);
                    case "TMethod249": return lib.TMethod249(paramArray, patternArray, param, gParam);
                    case "TMethod250": return lib.TMethod250(paramArray, patternArray, param, gParam);
                    case "TMethod251": return lib.TMethod251(paramArray, patternArray, param, gParam);
                    case "TMethod252": return lib.TMethod252(paramArray, patternArray, param, gParam);
                    case "TMethod253": return lib.TMethod253(paramArray, patternArray, param, gParam);
                    case "TMethod254": return lib.TMethod254(paramArray, patternArray, param, gParam);
                    case "TMethod255": return lib.TMethod255(paramArray, patternArray, param, gParam);
                    case "TMethod256": return lib.TMethod256(paramArray, patternArray, param, gParam);
                    case "TMethod257": return lib.TMethod257(paramArray, patternArray, param, gParam);
                    case "TMethod258": return lib.TMethod258(paramArray, patternArray, param, gParam);
                    case "TMethod259": return lib.TMethod259(paramArray, patternArray, param, gParam);
                    case "TMethod260": return lib.TMethod260(paramArray, patternArray, param, gParam);
                    case "TMethod261": return lib.TMethod261(paramArray, patternArray, param, gParam);
                    case "TMethod262": return lib.TMethod262(paramArray, patternArray, param, gParam);
                    case "TMethod263": return lib.TMethod263(paramArray, patternArray, param, gParam);
                    case "TMethod264": return lib.TMethod264(paramArray, patternArray, param, gParam);
                    case "TMethod265": return lib.TMethod265(paramArray, patternArray, param, gParam);
                    case "TMethod266": return lib.TMethod266(paramArray, patternArray, param, gParam);
                    case "TMethod267": return lib.TMethod267(paramArray, patternArray, param, gParam);
                    case "TMethod268": return lib.TMethod268(paramArray, patternArray, param, gParam);
                    case "TMethod269": return lib.TMethod269(paramArray, patternArray, param, gParam);
                    case "TMethod270": return lib.TMethod270(paramArray, patternArray, param, gParam);
                    case "TMethod271": return lib.TMethod271(paramArray, patternArray, param, gParam);
                    case "TMethod272": return lib.TMethod272(paramArray, patternArray, param, gParam);
                    case "TMethod273": return lib.TMethod273(paramArray, patternArray, param, gParam);
                    case "TMethod274": return lib.TMethod274(paramArray, patternArray, param, gParam);
                    case "TMethod275": return lib.TMethod275(paramArray, patternArray, param, gParam);
                    case "TMethod276": return lib.TMethod276(paramArray, patternArray, param, gParam);
                    case "TMethod277": return lib.TMethod277(paramArray, patternArray, param, gParam);
                    case "TMethod278": return lib.TMethod278(paramArray, patternArray, param, gParam);
                    case "TMethod279": return lib.TMethod279(paramArray, patternArray, param, gParam);
                    case "TMethod280": return lib.TMethod280(paramArray, patternArray, param, gParam);
                    case "TMethod281": return lib.TMethod281(paramArray, patternArray, param, gParam);
                    case "TMethod282": return lib.TMethod282(paramArray, patternArray, param, gParam);
                    case "TMethod283": return lib.TMethod283(paramArray, patternArray, param, gParam);
                    case "TMethod284": return lib.TMethod284(paramArray, patternArray, param, gParam);
                    case "TMethod285": return lib.TMethod285(paramArray, patternArray, param, gParam);
                    case "TMethod286": return lib.TMethod286(paramArray, patternArray, param, gParam);
                    case "TMethod287": return lib.TMethod287(paramArray, patternArray, param, gParam);
                    case "TMethod288": return lib.TMethod288(paramArray, patternArray, param, gParam);
                    case "TMethod289": return lib.TMethod289(paramArray, patternArray, param, gParam);
                    case "TMethod290": return lib.TMethod290(paramArray, patternArray, param, gParam);
                    case "TMethod291": return lib.TMethod291(paramArray, patternArray, param, gParam);
                    case "TMethod292": return lib.TMethod292(paramArray, patternArray, param, gParam);
                    case "TMethod293": return lib.TMethod293(paramArray, patternArray, param, gParam);
                    case "TMethod294": return lib.TMethod294(paramArray, patternArray, param, gParam);
                    case "TMethod295": return lib.TMethod295(paramArray, patternArray, param, gParam);
                    case "TMethod296": return lib.TMethod296(paramArray, patternArray, param, gParam);
                    case "TMethod297": return lib.TMethod297(paramArray, patternArray, param, gParam);
                    case "TMethod298": return lib.TMethod298(paramArray, patternArray, param, gParam);
                    case "TMethod299": return lib.TMethod299(paramArray, patternArray, param, gParam);
                    case "TMethod300": return lib.TMethod300(paramArray, patternArray, param, gParam);
                }
            }
            Fcode = string.Join("\r\n", arr);
            codes_Total.Add(Fcode);
        }
#if DEBUG
#else
            catch (Exception ex)
            {
                var x = ex.Message;
                //throw (ex);
            }
#endif
        public string Get_code()
        {
            string fCodes= string.Join("\r\n",codes_Total.ToArray());
            return TempCode_Total.Replace("{0}",fCodes);
        }
        public void Clear()
        {
            codes_Total.Clear();
        }
        public static void fi()
        {
        }
        public static string TempCode_Set = CommonUse+ @"
namespace CoustomEval
{
    [Serializable]
    class myLib
    {
        public dict<string,dict> myMethod(dict<string,dict> map_node,dict<string,dict> map_link)
        {
            {0}
            return -999;
        }
    }
}
";
        public static string TempCode_PreTreat = CommonUse+@"
namespace CoustomEval
{
    [Serializable]
    class myLib
    {
        public object myMethod(LogicModelParams param, WdnmoParam wParam,GeneticParams gParam,calcParam cParam)
        {
            {0}
        }
    }
}
";
    }
}