private object GetDefaultValue(TypeDesc fieldTypeDesc, Type t, XmlAttributes a)
{
if (a.XmlDefaultValue == null || a.XmlDefaultValue == DBNull.Value) return null;
if (!(fieldTypeDesc.Kind == TypeKind.Primitive || fieldTypeDesc.Kind == TypeKind.Enum))
{
//throw new InvalidOperationException(SR.XmlIllegalDefault);
a.XmlDefaultValue = null;
return a.XmlDefaultValue;
}
// for enums validate and return a string representation
if (fieldTypeDesc.Kind == TypeKind.Enum)
{
string strValue = Enum.Format(t, a.XmlDefaultValue, "G").Replace(",", " ");
string numValue = Enum.Format(t, a.XmlDefaultValue, "D");
if (strValue == numValue) // means enum value wasn't recognized
throw new InvalidOperationException(SR.Format(SR.XmlInvalidDefaultValue, strValue, a.XmlDefaultValue.GetType().FullName));
return strValue;
}
return a.XmlDefaultValue;
}