Beispiel #1
0
        public void OnOutputElement(OutputElementContext context)
        {
            bool matched = false;

            if (index == 14)
            {
                matched = true;
                Assert.IsTrue(context.Kind == OutputElementKind.BIND);
                Assert.IsTrue(context.WithinElementsAttribute);
                Assert.IsFalse(context.WithinClientSideComment);
                Assert.AreEqual(context.InnerText.Trim(), "Eval(\"PersonID\")");
            }
            if (index == 18)
            {
                matched = true;
                Assert.IsTrue(context.Kind == OutputElementKind.BIND);
                Assert.IsTrue(context.WithinElementsAttribute);
                Assert.IsFalse(context.WithinClientSideComment);
                Assert.AreEqual(context.InnerText.Trim(), "Bind(\"LastName\")");
            }
            if (index == 31)
            {
                matched = true;
                Assert.IsTrue(context.Kind == OutputElementKind.PLAIN);
                Assert.IsTrue(context.WithinElementsAttribute);
                Assert.IsFalse(context.WithinClientSideComment);
                Assert.AreEqual(context.InnerText.Trim(), "\"TEST3\"");
            }
            if (index == 33)
            {
                matched = true;
                Assert.IsTrue(context.Kind == OutputElementKind.HTML_ESCAPED);
                Assert.IsTrue(context.WithinElementsAttribute);
                Assert.IsFalse(context.WithinClientSideComment);
                Assert.AreEqual(context.InnerText.Trim(), "\"TEST4\"");
            }
            if (index == 35)
            {
                matched = true;
                Assert.IsTrue(context.Kind == OutputElementKind.PLAIN);
                Assert.IsFalse(context.WithinElementsAttribute);
                Assert.IsFalse(context.WithinClientSideComment);
                Assert.AreEqual(context.InnerText.Trim(), "\"TEST5\"");
            }
            Assert.IsTrue(matched);
            index++;
        }
        /// <summary>
        /// Called after output element &lt;%= %&gt;, &lt;%$ %&gt; or &lt;%: %&gt;
        /// </summary>
        public void OnOutputElement(OutputElementContext context)
        {
            IList list = null;

            if (context.Kind == OutputElementKind.HTML_ESCAPED || context.Kind == OutputElementKind.PLAIN)
            {
                context.InnerBlockSpan.Move(1, 1); // fix numbering
                // use code lookupers to explore the code
                if (fileLanguage == FILETYPE.CSHARP)
                {
                    list = parentCommand.LookupInCSharpAspNet(context.InnerText, context.InnerBlockSpan, declaredNamespaces, ClassFileName);
                }
                else if (fileLanguage == FILETYPE.VB)
                {
                    list = parentCommand.LookupInVBAspNet(context.InnerText, context.InnerBlockSpan, declaredNamespaces, ClassFileName);
                }
            }
            else if (context.Kind == OutputElementKind.EXPRESSION)
            {
                if (parentCommand is BatchInlineCommand)
                {
                    list = ((BatchInlineCommand)parentCommand).ParseResourceExpression(context.InnerText, context.InnerBlockSpan, fileLanguage == FILETYPE.CSHARP ? LANGUAGE.CSHARP : LANGUAGE.VB);
                }
            }

            if (list != null)
            {
                foreach (AbstractResultItem item in list)
                {
                    item.ComesFromClientComment = context.WithinClientSideComment;
                    if (item is AspNetStringResultItem)
                    {
                        ((AspNetStringResultItem)item).ComesFromInlineExpression = true;
                        ((AspNetStringResultItem)item).ClassOrStructElementName  = ClassFileName;
                    }
                    if (item is AspNetCodeReferenceResultItem)
                    {
                        ((AspNetCodeReferenceResultItem)item).ComesFromInlineExpression = true;
                        ((AspNetCodeReferenceResultItem)item).InlineReplaceSpan         = context.OuterBlockSpan;
                    }
                }
                AddContextToItems((IEnumerable)list);
            }
        }