示例#1
0
        public override void Interpret(EnumClassResolveContext context)
        {
            if (context == null || context.EnumDesc == null)
            {
                return;
            }

            Regex regex = new Regex(@"<(?<foreach>ForEach_Options)>(?<template>((?!<separator>).|\n)*)<separator>(?<separator>((?!</separator>).|\n)*)</separator>[^<]*</\k<foreach>>", RegexOptions.IgnoreCase | RegexOptions.Compiled);

            string text = context.OutputEnumClassContent;

            MatchCollection mc = regex.Matches(text);

            //遍历处理匹配结果的解析
            foreach (Match m in mc)
            {
                //获取当前匹配结果中的属性模板
                var propertyTemplate = m.Groups["template"].Value;

                //分隔器
                var separator = m.Groups["separator"].Value;

                //获取当前匹配结果解析后的code内容
                var data = GetTemplateReplaceAfterChars(propertyTemplate, separator, context.EnumDesc.Options);

                text = text.Replace(m.Value, data);
            }

            //枚举对象输出内容
            context.OutputEnumClassContent = text;
        }
示例#2
0
        public override void Interpret(EnumClassResolveContext context)
        {
            if (context == null || context.EnumDesc == null)
            {
                return;
            }

            Regex regex = new Regex(@"\{Enum_Description\}", RegexOptions.IgnoreCase | RegexOptions.Compiled);

            string text = context.OutputEnumClassContent;;

            context.OutputEnumClassContent = regex.Replace(text, context.EnumDesc.Description);
        }