// 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)); } }