/// <summary> /// Serializes properties of PSObject. /// </summary> private void WritePSObjectProperties(PSObject source, int depth) { Dbg.Assert(source != null, "caller should validate the information"); depth = GetDepthOfSerialization(source, depth); //Depth available for each property is one less --depth; Dbg.Assert(depth >= 0, "depth should be greater or equal to zero"); if (source.GetSerializationMethod(null) == SerializationMethod.SpecificProperties) { PSMemberInfoInternalCollection <PSPropertyInfo> specificProperties = new PSMemberInfoInternalCollection <PSPropertyInfo>(); foreach (string propertyName in source.GetSpecificPropertiesToSerialize(null)) { PSPropertyInfo property = source.Properties[propertyName]; if (property != null) { specificProperties.Add(property); } } SerializeProperties(specificProperties, CustomSerializationStrings.Properties, depth); return; } foreach (PSPropertyInfo prop in source.Properties) { Dbg.Assert(prop != null, "propertyCollection should only have member of type PSProperty"); object value = AutomationNull.Value; //PSObject throws GetValueException if it cannot //get value for a property. try { value = prop.Value; } catch (GetValueException) { WritePropertyWithNullValue(_writer, prop, depth); continue; } //Write the property if (value == null) { WritePropertyWithNullValue(_writer, prop, depth); } else { WriteOneObject(value, prop.Name, depth); } } }
private void WritePSObjectProperties(PSObject source, int depth) { depth = GetDepthOfSerialization(source, depth); depth--; if (source.GetSerializationMethod(null) == SerializationMethod.SpecificProperties) { PSMemberInfoInternalCollection <PSPropertyInfo> propertyCollection = new PSMemberInfoInternalCollection <PSPropertyInfo>(); foreach (string str in source.GetSpecificPropertiesToSerialize(null)) { PSPropertyInfo member = source.Properties[str]; if (member != null) { propertyCollection.Add(member); } } this.SerializeProperties(propertyCollection, "Property", depth); } else { foreach (PSPropertyInfo info2 in source.Properties) { object obj2 = AutomationNull.Value; try { obj2 = info2.Value; } catch (GetValueException) { this.WritePropertyWithNullValue(this._writer, info2, depth); continue; } if (obj2 == null) { this.WritePropertyWithNullValue(this._writer, info2, depth); } else { this.WriteOneObject(obj2, info2.Name, depth); } } } }
private void WritePSObjectProperties(PSObject source, int depth) { depth = GetDepthOfSerialization(source, depth); depth--; if (source.GetSerializationMethod(null) == SerializationMethod.SpecificProperties) { PSMemberInfoInternalCollection<PSPropertyInfo> propertyCollection = new PSMemberInfoInternalCollection<PSPropertyInfo>(); foreach (string str in source.GetSpecificPropertiesToSerialize(null)) { PSPropertyInfo member = source.Properties[str]; if (member != null) { propertyCollection.Add(member); } } this.SerializeProperties(propertyCollection, "Property", depth); } else { foreach (PSPropertyInfo info2 in source.Properties) { object obj2 = AutomationNull.Value; try { obj2 = info2.Value; } catch (GetValueException) { this.WritePropertyWithNullValue(this._writer, info2, depth); continue; } if (obj2 == null) { this.WritePropertyWithNullValue(this._writer, info2, depth); } else { this.WriteOneObject(obj2, info2.Name, depth); } } } }
/// <summary> /// Serializes properties of PSObject /// </summary> private void WritePSObjectProperties(PSObject source, int depth) { Dbg.Assert(source != null, "caller should validate the information"); depth = GetDepthOfSerialization(source, depth); //Depth available for each property is one less --depth; Dbg.Assert(depth >= 0, "depth should be greater or equal to zero"); if (source.GetSerializationMethod(null) == SerializationMethod.SpecificProperties) { PSMemberInfoInternalCollection<PSPropertyInfo> specificProperties = new PSMemberInfoInternalCollection<PSPropertyInfo>(); foreach (string propertyName in source.GetSpecificPropertiesToSerialize(null)) { PSPropertyInfo property = source.Properties[propertyName]; if (property != null) { specificProperties.Add(property); } } SerializeProperties(specificProperties, CustomSerializationStrings.Properties, depth); return; } foreach (PSPropertyInfo prop in source.Properties) { Dbg.Assert(prop != null, "propertyCollection should only have member of type PSProperty"); object value = AutomationNull.Value; //PSObject throws GetValueException if it cannot //get value for a property. try { value = prop.Value; } catch (GetValueException) { WritePropertyWithNullValue(_writer, prop, depth); continue; } //Write the property if (value == null) { WritePropertyWithNullValue(_writer, prop, depth); } else { WriteOneObject(value, prop.Name, depth); } } }