private bool FillSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property, InternalTypeInfo 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 object createObjectFromSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property) { int itemsCount = property.Items.Count; Array array = createArrayInstance(property.ElementType, new[] { itemsCount }, new[] { property.LowerBound }); if (property.Reference != null) { // property has Reference, only objects referenced multiple times // have properties with references. Object must be cached to // resolve its references in the future. _objectCache.Add(property.Reference.Id, array); } // Items for (int index = property.LowerBound; index < property.LowerBound + itemsCount; index++) { Property item = property.Items[index]; object value = CreateObject(item); if (value != null) { array.SetValue(value, index); } } return(array); }
private void parseSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property) { // Element type property.ElementType = this._reader.ReadType(); // Lowerbound property.LowerBound = this._reader.ReadNumber(); this.readItems(property.Items, property.ElementType); }
private void parseSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property) { // ElementType property.ElementType = property.Type != null?TypeInfo.GetTypeInfo(property.Type).ElementType : null; // LowerBound property.LowerBound = _reader.GetAttributeAsInt(Attributes.LowerBound); // Items foreach (string subElement in _reader.ReadSubElements()) { if (subElement == SubElements.Items) { readItems(property.Items, property.ElementType); } } }
private object CreateObjectFromSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property) { int itemsCount = property.Items.Count; var array = CreateArrayInstance(property.ElementType, new[] { itemsCount }, new[] { property.LowerBound }); if (property.Reference != null) { _objectCache.Add(property.Reference.Id, array); } // Items for (var index = property.LowerBound; index < property.LowerBound + itemsCount; index++) { Property item = property.Items[index]; var value = CreateObject(item); if (value != null) { array.SetValue(value, index); } } return(array); }
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 object createObjectFromSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property) { var itemsCount = property.Items.Count; var array = createArrayInstance(property.ElementType, new[] { itemsCount }, new[] { property.LowerBound }); // Items for (int index = property.LowerBound; index < property.LowerBound + itemsCount; index++) { var item = property.Items[index]; var value = CreateObject(item); if (value != null) { array.SetValue(value, index); } } return array; }
private object createObjectFromSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property) { int itemsCount = property.Items.Count; Array array = createArrayInstance(property.ElementType, new[] {itemsCount}, new[] {property.LowerBound}); if (property.Reference != null) { // property has Reference, only objects referenced multiple times // have properties with references. Object must be cached to // resolve its references in the future. _objectCache.Add(property.Reference.Id, array); } // Items for (int index = property.LowerBound; index < property.LowerBound + itemsCount; index++) { Property item = property.Items[index]; object value = CreateObject(item); if (value != null) { array.SetValue(value, index); } } return array; }
private void parseSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property) { // Element type property.ElementType = _reader.ReadType(); // Lowerbound property.LowerBound = _reader.ReadNumber(); readItems(property.Items, property.ElementType); }
private void parseSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property) { // ElementType property.ElementType = property.Type != null ? Polenter.Serialization.Serializing.TypeInfo.GetTypeInfo(property.Type, _simpleTypes).ElementType : null; // LowerBound property.LowerBound = _reader.GetAttributeAsInt(Attributes.LowerBound); // Items foreach (string subElement in _reader.ReadSubElements()) { if (subElement == SubElements.Items) { readItems(property.Items, property.ElementType); } } }
private void ParseSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property) { // ElementType property.ElementType = property.Type != null ? TypeInfo.GetTypeInfo(property.Type).ElementType : null; // LowerBound property.LowerBound = _reader.GetAttributeAsInt(Attributes.LowerBound); // Items foreach (var subElement in _reader.ReadSubElements()) { if (subElement == SubElements.Items) { ReadItems(property.Items, property.ElementType); } } }
private void parseSingleDimensionalArrayProperty(XmlReader reader, SingleDimensionalArrayProperty property) { // ElementType property.ElementType = getElementTypeAttribute(reader); // LowerBound property.LowerBound = getLowerBoundAttribute(reader); // Items while (reader.Read()) { if (areItemsFound(reader)) { using (var subReader = new SubtreeReader(reader)) { readItems(subReader.Reader, property.Items, property.ElementType); } } } }