List<BattleAxe.Dynamic> getSetAndGetData() { List<BattleAxe.Dynamic> objs = new List<BattleAxe.Dynamic>(); for (int i = 0; i < 100; i++) { var obj = new BattleAxe.Dynamic(); obj["ID"] = i; obj["Value"] = i; obj["Name"] = "Name" + i.ToString(); objs.Add(obj); } return objs; }
static MethodInfo createMethod(string code, Type type) { CSharpCodeProvider provider = new CSharpCodeProvider(); CompilerParameters parameters = new CompilerParameters(); // Reference to System.Drawing library //parameters.ReferencedAssemblies.Add("System.Drawing.dll"); // True - memory generation, false - external file generation parameters.GenerateInMemory = true; parameters.GenerateExecutable = false; // Add CSharpSimpleScripting.exe as a reference to Scripts.dll to expose interfaces List <Assembly> referencedAssemblies = new List <Assembly>(); referencedAssemblies.Add(type.Assembly); //parameters.ReferencedAssemblies.Add(type.Assembly.Location); var interfaces = type.GetInterfaces(); foreach (var i in interfaces) { var found = referencedAssemblies.FirstOrDefault(a => a == i.Assembly); if (found == null) { referencedAssemblies.Add(i.Assembly); } } foreach (var a in referencedAssemblies) { parameters.ReferencedAssemblies.Add(a.Location); } var location = new BattleAxe.Dynamic().GetType().Assembly.Location; //added so that we can use NullableConverter, there were no references to BattleAxe parameters.ReferencedAssemblies.Add(location); CompilerResults results = provider.CompileAssemblyFromSource(parameters, code); Type binaryFunction = results.CompiledAssembly.GetType("BattleAxe.SetMethods"); return(binaryFunction.GetMethod("SetValue")); }
/// <summary> /// /// </summary> /// <param name="definition"></param> /// <param name="parameter"></param> /// <returns></returns> public static Dynamic FirstOrDefault(this ICommandDefinition definition, BattleAxe.Dynamic parameter = null) => definition.FirstOrDefault <Dynamic>(parameter);