//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // // Microsoft //------------------------------------------------------------------------------ namespace System.Xml.Serialization { using System; using System.Reflection; using System.Collections; using System.ComponentModel; internal enum SoapAttributeFlags { Enum = 0x1, Type = 0x2, Element = 0x4, Attribute = 0x8, } /// /// /// [To be supplied.] /// public class SoapAttributes { bool soapIgnore; SoapTypeAttribute soapType; SoapElementAttribute soapElement; SoapAttributeAttribute soapAttribute; SoapEnumAttribute soapEnum; object soapDefaultValue = null; /// /// /// [To be supplied.] /// public SoapAttributes() { } /// /// /// [To be supplied.] /// public SoapAttributes(ICustomAttributeProvider provider) { object[] attrs = provider.GetCustomAttributes(false); for (int i = 0; i < attrs.Length; i++) { if (attrs[i] is SoapIgnoreAttribute || attrs[i] is ObsoleteAttribute) { this.soapIgnore = true; break; } else if (attrs[i] is SoapElementAttribute) { this.soapElement = (SoapElementAttribute)attrs[i]; } else if (attrs[i] is SoapAttributeAttribute) { this.soapAttribute = (SoapAttributeAttribute)attrs[i]; } else if (attrs[i] is SoapTypeAttribute) { this.soapType = (SoapTypeAttribute)attrs[i]; } else if (attrs[i] is SoapEnumAttribute) { this.soapEnum = (SoapEnumAttribute)attrs[i]; } else if (attrs[i] is DefaultValueAttribute) { this.soapDefaultValue = ((DefaultValueAttribute)attrs[i]).Value; } } if (soapIgnore) { this.soapElement = null; this.soapAttribute = null; this.soapType = null; this.soapEnum = null; this.soapDefaultValue = null; } } internal SoapAttributeFlags SoapFlags { get { SoapAttributeFlags flags = 0; if (soapElement != null) flags |= SoapAttributeFlags.Element; if (soapAttribute != null) flags |= SoapAttributeFlags.Attribute; if (soapEnum != null) flags |= SoapAttributeFlags.Enum; if (soapType != null) flags |= SoapAttributeFlags.Type; return flags; } } /// /// /// [To be supplied.] /// public SoapTypeAttribute SoapType { get { return soapType; } set { soapType = value; } } /// /// /// [To be supplied.] /// public SoapEnumAttribute SoapEnum { get { return soapEnum; } set { soapEnum = value; } } /// /// /// [To be supplied.] /// public bool SoapIgnore { get { return soapIgnore; } set { soapIgnore = value; } } /// /// /// [To be supplied.] /// public SoapElementAttribute SoapElement { get { return soapElement; } set { soapElement = value; } } /// /// /// [To be supplied.] /// public SoapAttributeAttribute SoapAttribute { get { return soapAttribute; } set { soapAttribute = value; } } /// /// /// [To be supplied.] /// public object SoapDefaultValue { get { return soapDefaultValue; } set { soapDefaultValue = value; } } } }