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;
}