public RunTimeArrayAccessReferenceListAccess(Type t, string identifer, object target, object accessor, Type targetType) : base(t, identifer, target, accessor, targetType) { _accessor = accessor; _type = t; _targetType = targetType; _elemType = (t != typeof(object)) ? ArrayUtility.GetElementType(t) : typeof(object); }
protected virtual object CreateIntAccessorReference(object output, object accessor) { if (output as RunTimeReference != null) { RunTimeReference reference = output as RunTimeReference; object target = reference.CreateGetFunction(_cdata); if (reference.type == null || reference.type == typeof(object)) { output = new RunTimeArrayAccessReference(typeof(object), reference.identifer, target, accessor, typeof(object)); } else { output = new RunTimeArrayAccessReference(ArrayUtility.GetElementType(reference.type), reference.identifer, target, accessor, reference.targetType); } } else if (output as FunctionCall != null || output as MethodCall != null || output as CompileTimeArrayAccessReference != null) { Reference reference = output as Reference; object target = reference.CreateGetFunction(_cdata); if (reference.type == null || reference.type == typeof(object)) { output = new RunTimeArrayAccessReference(typeof(object), reference.identifer, target, accessor, typeof(object)); } else { output = new RunTimeArrayAccessReference(ArrayUtility.GetElementType(reference.type), reference.identifer, target, accessor, reference.type); } } else if (output as CompileTimeReference != null) { CompileTimeReference reference = output as CompileTimeReference; if (reference.type == null || reference.type == typeof(object)) { output = new CompileTimeArrayAccessReference(typeof(object), reference.identifer, reference.environmentIndex, accessor); } else { output = new CompileTimeArrayAccessReference(ArrayUtility.GetElementType(reference.type), reference.identifer, reference.environmentIndex, accessor); } } return(output); }
public CompileTimeArrayAccessReferenceListAccess(Type t, string identifer, int envIndex, object accessor) : base(t, identifer, envIndex, accessor) { _accessor = accessor; _elemType = (t != typeof(object)) ? ArrayUtility.GetElementType(t) : typeof(object); }