Westwind.WebConnection.wwDotNetBridge.CreateArrayInstanceInternal C# (CSharp) Method

CreateArrayInstanceInternal() private method

Creates an instance of an array on a given base object instance by name. Array is created with 'empty' elements - ie. objects are null and value types are set to their default() values.
private CreateArrayInstanceInternal ( object baseType, string arrayProperty, int size ) : Array
baseType object
arrayProperty string
size int
return System.Array
        private Array CreateArrayInstanceInternal(object baseType, string arrayProperty, int size)
        {
            MemberInfo[] miArray = baseType.GetType().GetMember(arrayProperty);
            if (miArray == null || miArray.Length == 0)
            {
                SetError("Array member doesn't exist on base type");
                return null;
            }

            Type type = null;
            MemberInfo mi = miArray[0];
            if (mi.MemberType == MemberTypes.Field)
                type = baseType.GetType().GetField(arrayProperty).FieldType.GetElementType();
            else
                type = baseType.GetType().GetProperty(arrayProperty).PropertyType.GetElementType();

            if (type == null)
            {
                SetError("Invalid type for array: " + type.Name);
                return null;
            }

            // *** Create instance and assign size
            Array ar = Array.CreateInstance(type, size);
            return ar;
        }
wwDotNetBridge