/// <summary>
        /// This is a sample of an ReferenceInsertion handler that escapes objects into
        /// XML strings. What matters for this handler is the topmost "escapable" or
        /// "not escapable" specification.
        /// </summary>
        private void EventCartridge_ReferenceInsertion(object sender, ReferenceInsertionEventArgs e)
        {
            Stack rs = e.GetCopyOfReferenceStack();

            while (rs.Count > 0)
            {
                Object current = rs.Pop();
                if (current is INotEscapable)
                {
                    return;
                }

                if (current is IEscapable)
                {
                    e.NewValue = Regex.Replace(e.OriginalValue.ToString(), "[&<>\"]", new MatchEvaluator(Escaper));
                    return;
                }
            }

            if (e.RootString == "$multipleItems")
            {
                e.NewValue = new[] { "Item 1", "Item 2" };
            }
            else if (e.RootString == "$singleItem")
            {
                e.NewValue = "New single item";
            }
        }
Пример #2
0
        /// <summary>
        /// This is a sample of an ReferenceInsertion handler that escapes objects into
        /// XML strings. What matters for this handler is the topmost "escapable" or
        /// "not escapable" specification.
        /// </summary>
        private void EventCartridge_ReferenceInsertion(object sender, ReferenceInsertionEventArgs e)
        {
            Stack rs = e.GetCopyOfReferenceStack();

            while (rs.Count > 0)
            {
                Object current = rs.Pop();
                if (current is INotEscapable)
                {
                    return;
                }

                if (current is IEscapable)
                {
                    e.NewValue = Regex.Replace(e.OriginalValue.ToString(), "[&<>\"]", new MatchEvaluator(Escaper));
                    return;
                }
            }
        }
Пример #3
0
        private static void ec_ReferenceInsertion(object sender, ReferenceInsertionEventArgs e)
        {
            if (e.OriginalValue == null)
            {
                return;
            }

            var s = e.GetCopyOfReferenceStack();

            while (s.Count > 0)
            {
                var current = s.Pop();
                if (!(current is IEscapable))
                {
                    continue;
                }

                e.NewValue = XmlEncoder.Encode(Convert.ToString(e.OriginalValue));
                return;
            }
        }
Пример #4
0
        /// <summary>
        /// This is a sample of an ReferenceInsertion handler that escapes objects into
        /// XML strings. What matters for this handler is the topmost "escapable" or
        /// "not escapable" specification.
        /// </summary>
        private void EventCartridge_ReferenceInsertion(object sender, ReferenceInsertionEventArgs e)
        {
            Stack rs = e.GetCopyOfReferenceStack();
            while(rs.Count > 0)
            {
                Object current = rs.Pop();
                if (current is INotEscapable)
                    return;

                if (current is IEscapable)
                {
                    e.NewValue = Regex.Replace(e.OriginalValue.ToString(), "[&<>\"]", new MatchEvaluator(Escaper));
                    return;
                }
            }

            if (e.RootString == "$multipleItems")
            {
                e.NewValue = new[] {"Item 1", "Item 2"};
            }
            else if (e.RootString == "$singleItem")
            {
                e.NewValue = "New single item";
            }
        }