System.Xml.Serialization.XmlSerializationWriterInterpreter.MemberHasValue C# (CSharp) Method

MemberHasValue() private method

private MemberHasValue ( System.Xml.Serialization.XmlTypeMapMember member, object ob, bool isValueList ) : bool
member System.Xml.Serialization.XmlTypeMapMember
ob object
isValueList bool
return bool
		bool MemberHasValue (XmlTypeMapMember member, object ob, bool isValueList)
		{
			if (isValueList) {
				if (member.IsOptionalValueType && !member.GetValueSpecified (ob))
					return false;
				return member.GlobalIndex < ((object[])ob).Length;
			}
			else if (member.DefaultValue != System.DBNull.Value) {
				object val = GetMemberValue (member, ob, isValueList);
				if (val == null && member.DefaultValue == null) return false;
				if (val != null && val.GetType().IsEnum)
				{
					if (val.Equals (member.DefaultValue)) return false;
					Type t = Enum.GetUnderlyingType(val.GetType());
					val = Convert.ChangeType (val, t);
				}
				if (val != null && val.Equals (member.DefaultValue)) return false;
			}
			else if (member.IsOptionalValueType)
				return member.GetValueSpecified (ob);

			return true;
		}