public EncodedAttributes(MemberInfo memberInfo)
        {
            foreach (object attr in memberInfo.GetCustomAttributes(false))
            {
                Type type = attr.GetType();
#if !FEATURE_LEGACYNETCF
                if (type == k_ignoreType)
                {
                    Debug.Assert(Ignore == false, "Too many SIAs");
                    Ignore = true;
                }
                else
#endif
                if (type == s_eltType)
                {
                    Debug.Assert(SoapElement == null, "Too many SEAs");
                    SoapElement = (SoapElementAttribute)attr;
                }
                else if (type == s_attrType)
                {
                    Debug.Assert(SoapAttribute == null, "Too many SAAs");
                    SoapAttribute = (SoapAttributeAttribute)attr;
                }
                else if (type == s_enumType)
                {
                    SoapEnum = (SoapEnumAttribute)attr;
                }
                else
                {
                    base.processAttribute(attr);
                }
            }
        }
        public EncodedAttributes(MemberInfo memberInfo, SoapAttributes soapAtts) :
            this(memberInfo)
        {
            if (soapAtts == null)
            {
                return;
            }

            Ignore = soapAtts.SoapIgnore;
            if (!Ignore)
            {
                SoapElement   = soapAtts.SoapElement;
                SoapAttribute = soapAtts.SoapAttribute;
                SoapEnum      = soapAtts.SoapEnum;
                DefaultValue  = (soapAtts.SoapDefaultValue == null) ?
                                null :
                                new DefaultValueAttribute(soapAtts.SoapDefaultValue);
            }
        }