private void InternalGetFields(MethodArgStack[] Stack, ref MethodArgStack returnValue, DotNetMethod method) { var val = Stack[0]; var type = (DotNetType)Objects.ObjectRefs[(int)val.value].Fields["internal__type"].value; var array = Arrays.AllocArray((int)type.Fields.Count); int i = 0; foreach (var item in type.Fields) { var field2 = CreateType("System.Reflection", "FieldInfo"); WriteStringToType(field2, "_internalName", item.Name); Objects.ObjectRefs[(int)field2.value].Fields.Add("ParrentObjectID", new MethodArgStack() { type = StackItemType.Object, value = type }); Objects.ObjectRefs[(int)field2.value].Fields.Add("InternalField", new MethodArgStack() { type = StackItemType.Object, value = item }); Arrays.ArrayRefs[array.Index].Items[i] = field2; i++; } returnValue = new MethodArgStack() { type = StackItemType.Array, value = array.Index }; }
private void String_Split(MethodArgStack[] Stack, ref MethodArgStack returnValue, DotNetMethod method) { var toSplit = (string)Stack[0].value; var seperators = Arrays.ArrayRefs[Arrays.GetIndexFromRef(Stack[1])]; List <char> chars = new List <char>(); foreach (var item in seperators.Items) { chars.Add((char)(int)item.value); } var r = toSplit.Split(chars.ToArray()); var arr = Arrays.AllocArray(r.Length); for (int i = 0; i < r.Length; i++) { arr.Items[i] = MethodArgStack.String(r[i]); } returnValue = MethodArgStack.Array(arr); ; }