// Token: 0x060021C5 RID: 8645 RVA: 0x000A8FFC File Offset: 0x000A71FC
        private void CompileProperty(ArrayList xamlNodes, string name, string value, Type parentType, string parentTypeNamespaceUri, AttributeData data, int lineNumber, int linePosition, int depth)
        {
            MarkupExtensionParser.RemoveEscapes(ref name);
            MarkupExtensionParser.RemoveEscapes(ref value);
            int    num   = name.IndexOf(':');
            string text  = (num < 0) ? name : name.Substring(num + 1);
            string text2 = (num < 0) ? string.Empty : name.Substring(0, num);
            string text3 = this.ResolveAttributeNamespaceURI(text2, text, parentTypeNamespaceUri);

            if (string.IsNullOrEmpty(text3))
            {
                this.ThrowException("ParserPrefixNSProperty", text2, name, lineNumber, linePosition);
            }
            object           obj;
            string           assemblyName;
            string           typeFullName;
            Type             type;
            string           propertyName;
            AttributeContext attributeContext = this.GetAttributeContext(parentType, parentTypeNamespaceUri, text3, text, out obj, out assemblyName, out typeFullName, out type, out propertyName);

            if (attributeContext != AttributeContext.Property)
            {
                this.ThrowException("ParserMarkupExtensionUnknownAttr", text, parentType.FullName, lineNumber, linePosition);
            }
            MemberInfo memberInfo = obj as MemberInfo;

            if (data == null || !data.IsSimple)
            {
                XamlPropertyNode value2 = new XamlPropertyNode(lineNumber, linePosition, depth, obj, assemblyName, typeFullName, propertyName, value, BamlAttributeUsage.Default, true);
                xamlNodes.Add(value2);
                return;
            }
            if (data.IsTypeExtension)
            {
                string valueTypeFullName  = value;
                string valueAssemblyName  = null;
                Type   typeFromBaseString = this._parserContext.XamlTypeMapper.GetTypeFromBaseString(value, this._parserContext, true);
                if (typeFromBaseString != null)
                {
                    valueTypeFullName = typeFromBaseString.FullName;
                    valueAssemblyName = typeFromBaseString.Assembly.FullName;
                }
                XamlPropertyWithTypeNode value3 = new XamlPropertyWithTypeNode(data.LineNumber, data.LinePosition, data.Depth, obj, assemblyName, typeFullName, text, valueTypeFullName, valueAssemblyName, typeFromBaseString, string.Empty, string.Empty);
                xamlNodes.Add(value3);
                return;
            }
            XamlPropertyWithExtensionNode value4 = new XamlPropertyWithExtensionNode(data.LineNumber, data.LinePosition, data.Depth, obj, assemblyName, typeFullName, text, value, data.ExtensionTypeId, data.IsValueNestedExtension, data.IsValueTypeExtension);

            xamlNodes.Add(value4);
        }
 // Token: 0x060021C1 RID: 8641 RVA: 0x000A8C24 File Offset: 0x000A6E24
 private void WriteConstructorParams(ArrayList xamlNodes, ArrayList list, DefAttributeData data, ref int listIndex)
 {
     if (list != null && listIndex < list.Count)
     {
         int lineNumber   = data.LineNumber;
         int linePosition = data.LinePosition;
         int num          = data.Depth + 1;
         data.Depth = num;
         xamlNodes.Add(new XamlConstructorParametersStartNode(lineNumber, linePosition, num));
         while (listIndex < list.Count)
         {
             if (!(list[listIndex] is string))
             {
                 this.ThrowException("ParserMarkupExtensionBadConstructorParam", data.Args, data.LineNumber, data.LinePosition);
             }
             if (list.Count > listIndex + 1 && list[listIndex + 1] is char && (char)list[listIndex + 1] == '=')
             {
                 break;
             }
             string        textContent   = (string)list[listIndex];
             AttributeData attributeData = this.IsMarkupExtensionAttribute(data.DeclaringType, string.Empty, ref textContent, data.LineNumber, data.LinePosition, data.Depth, null);
             if (attributeData == null)
             {
                 MarkupExtensionParser.RemoveEscapes(ref textContent);
                 xamlNodes.Add(new XamlTextNode(data.LineNumber, data.LinePosition, data.Depth, textContent, null));
             }
             else
             {
                 this.CompileAttributeCore(xamlNodes, attributeData);
             }
             listIndex += 2;
         }
         int lineNumber2   = data.LineNumber;
         int linePosition2 = data.LinePosition;
         num        = data.Depth;
         data.Depth = num - 1;
         xamlNodes.Add(new XamlConstructorParametersEndNode(lineNumber2, linePosition2, num));
     }
 }