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