Exemple #1
0
        public override void WriteUnknownTagEnd(XamlUnknownTagEndNode xamlUnknownTagEndNode)
        {
            NamespaceMapEntry[] namespaceMaps = XamlTypeMapper.GetNamespaceMapEntries(xamlUnknownTagEndNode.XmlNamespace);
            bool localTag = namespaceMaps != null && namespaceMaps.Length == 1 && namespaceMaps[0].LocalAssembly;

            if (localTag && !_pass2)
            {
                // if local complex property bail out now and handle in 2nd pass when TypInfo is available
                int lastIndex = xamlUnknownTagEndNode.LocalName.LastIndexOf(MarkupCompiler.DOTCHAR);
                if (-1 == lastIndex)
                {
                    _compiler.EndElement(_pass2);
                }
            }
            else
            {
                base.WriteUnknownTagEnd(xamlUnknownTagEndNode);
            }
        }
        /// <summary>
        /// Write end of an unknown tag 
        /// </summary>
        /// <remarks> 
        /// For template parsing, the 'Set' tag is an unknown tag, but this will map to a 
        /// Trigger set command.  Store this as an element end record here.
        /// </remarks> 
        public override void WriteUnknownTagEnd(XamlUnknownTagEndNode xamlUnknownTagEndNode)
        {
            if (_inSetterDepth == xamlUnknownTagEndNode.Depth)
            { 
                XamlElementEndNode elementEnd = new XamlElementEndNode(
                                                        xamlUnknownTagEndNode.LineNumber, 
                                                        xamlUnknownTagEndNode.LinePosition, 
                                                        xamlUnknownTagEndNode.Depth);
                base.WriteElementEnd(elementEnd); 
                _inSetterDepth = -1;
            }
            else
            { 
#if PBTCOMPILER
                NamespaceMapEntry[] namespaceMaps = XamlTypeMapper.GetNamespaceMapEntries(xamlUnknownTagEndNode.XmlNamespace); 
                bool localTag = namespaceMaps != null && namespaceMaps.Length == 1 && namespaceMaps[0].LocalAssembly; 

                if (!localTag || !IsLocalPass1) 
                {
#endif
                   base.WriteUnknownTagEnd(xamlUnknownTagEndNode);
#if PBTCOMPILER 
                }
#endif 
            } 

            _styleModeStack.Pop(); 
        }
Exemple #3
0
 /// <summary>
 /// Write end of an unknown tag
 /// </summary>
 public virtual void WriteUnknownTagEnd(XamlUnknownTagEndNode xamlUnknownTagEndNode)
 {
     // The default action for unknown tags is throw an exception.  This should never
     // get here unless there is a coding error, since it would first hit
     // WriteUnknownTagStart
     ThrowException(SRID.ParserUnknownTag ,
                 "???",
                 xamlUnknownTagEndNode.LineNumber,
                 xamlUnknownTagEndNode.LinePosition);
 }
        public override void WriteUnknownTagEnd(XamlUnknownTagEndNode xamlUnknownTagEndNode)
        {
            NamespaceMapEntry[] namespaceMaps = XamlTypeMapper.GetNamespaceMapEntries(xamlUnknownTagEndNode.XmlNamespace);
            bool localTag = namespaceMaps != null && namespaceMaps.Length == 1 && namespaceMaps[0].LocalAssembly;

            if (localTag && !_pass2)
            {
                // if local complex property bail out now and handle in 2nd pass when TypInfo is available
                int lastIndex = xamlUnknownTagEndNode.LocalName.LastIndexOf(MarkupCompiler.DOTCHAR);
                if (-1 == lastIndex)
                {
                    _compiler.EndElement(_pass2);
                }
            }
            else
            {
                base.WriteUnknownTagEnd(xamlUnknownTagEndNode);
            }
        }
        /// <summary>
        /// Write end of an unknown tag 
        /// </summary>
        /// <remarks>
        /// For style parsing, the 'Set' tag is an unknown tag, but this will map to a
        /// Trigger set command.  Store this as an element end record here. 
        /// </remarks>
        public override void WriteUnknownTagEnd(XamlUnknownTagEndNode xamlUnknownTagEndNode) 
        { 
#if PBTCOMPILER
                NamespaceMapEntry[] namespaceMaps = XamlTypeMapper.GetNamespaceMapEntries(xamlUnknownTagEndNode.XmlNamespace); 
                bool localTag = namespaceMaps != null && namespaceMaps.Length == 1 && namespaceMaps[0].LocalAssembly;

                if (!localTag || !IsLocalPass1)
                { 
#endif
                   base.WriteUnknownTagEnd(xamlUnknownTagEndNode); 
#if PBTCOMPILER 
                }
#endif 
        }