private bool FillSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property, TypeInfo info, object value) { if (property == null) { return false; } property.ElementType = info.ElementType; var analyzer = new ArrayAnalyzer(value); // Dimensionen var dimensionInfo = analyzer.ArrayInfo.DimensionInfos[0]; property.LowerBound = dimensionInfo.LowerBound; // Items foreach (var item in analyzer.GetValues()) { var itemProperty = CreateProperty(null, item); property.Items.Add(itemProperty); } return true; }
private bool FillMultiDimensionalArrayProperty(MultiDimensionalArrayProperty property, TypeInfo info, object value) { if (property == null) { return false; } property.ElementType = info.ElementType; var analyzer = new ArrayAnalyzer(value); // DimensionInfos property.DimensionInfos = analyzer.ArrayInfo.DimensionInfos; // Items foreach (var indexSet in analyzer.GetIndexes()) { var subValue = ((Array)value).GetValue(indexSet); var itemProperty = CreateProperty(null, subValue); property.Items.Add(new MultiDimensionalArrayItem(indexSet, itemProperty)); } return true; }