Exemple #1
0
        public override IodineObject Invoke(VirtualMachine vm, IodineObject[] arguments)
        {
            int i = 0;

            var suitableOverload = type.GetConstructors().Where(p => p.GetParameters().Length ==
                                                                arguments.Length).
                                   FirstOrDefault();

            Type[] types = suitableOverload.GetParameters().Select(p => p.ParameterType).ToArray();

            object[] objects = arguments.Select(p => typeRegistry.ConvertToNativeObject(p,
                                                                                        types [i++])).ToArray();

            return(ObjectWrapper.CreateFromObject(typeRegistry, this, suitableOverload.Invoke(objects)));
        }
 public override IodineObject ConvertFrom(TypeRegistry registry, object obj)
 {
     return(ObjectWrapper.CreateFromObject(typeRegistry, classWrapper, obj));
 }