private bool fillSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property, TypeInfo info, object value) { if (property == null) return false; property.ElementType = info.ElementType; var analyzer = new ArrayAnalyzer(value); // Dimensionen DimensionInfo dimensionInfo = analyzer.ArrayInfo.DimensionInfos[0]; property.LowerBound = dimensionInfo.LowerBound; // Items foreach (object item in analyzer.GetValues()) { Property 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()) { object subValue = ((Array) value).GetValue(indexSet); Property itemProperty = CreateProperty(null, subValue); property.Items.Add(new MultiDimensionalArrayItem(indexSet, itemProperty)); } return true; }