/// <summary> /// Converts the contents of a merged XML element to the appropriate Oracle representation. /// </summary> /// <param name="xml"></param> /// <returns></returns> static object DeserializeAttribute(OracleObjectTypeAttribute metadata, XElement xml) { if (xml == null) { return(null); } if (metadata.DbType != null) { return(DeserializeOracleDbTypeFromXmlValue((OracleDbType)metadata.DbType, xml.Value)); } else { throw new NotImplementedException("Cannot deserialize UDT attribute of non-OracleDbType."); } }
/// <summary> /// Serializes the specified attribute and attribute value. /// </summary> /// <param name="attribute"></param> /// <param name="value"></param> /// <returns></returns> static XElement SerializeAttribute(OracleObjectTypeAttribute attribute, object value) { if (value == null) { throw new ArgumentNullException(nameof(value)); } if (attribute == null) { throw new ArgumentNullException(nameof(attribute)); } if (attribute.DbType != null) { return(SerializeOracleDbType(attribute.Name, (OracleDbType)attribute.DbType, value)); } else { throw new NotImplementedException("Cannot serialize UDT attribute of non-OracleDbType."); } }