正则表达式在编辑器扩展中爆炸

时间:2009-07-12 16:17:40

标签: .net regex mef

我正在为我的Django渲染引擎构建一个Visual Studio编辑器扩展。我刚刚开始它,所以到目前为止,它非常简单,到目前为止它完成了我期望它做的事情 - 突出显示等等。 或者直到我开始添加解析逻辑。部分解析依赖于正则表达式。这是我的问题: 无论我如何尝试 - 静态变量,成员变量, - 任何东西,每次我调用新的正则表达式时,它都会给我“对象未设置为实例”异常。 在MEF中使用正则表达式(RegEx)有问题吗?

你去:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.ComponentModel.Composition;
    using System.Text.RegularExpressions;

    namespace NDjango.Designer.Parsing
    {
        public interface IParser
        {
             List<Token> Parse(IEnumerable<string> template);
        }

        [Export(typeof(IParser))]
        public class Parser : IParser
        {
            public List<Token> Parse(IEnumerable<string> template)
            {
                var result = new List<Token>();
                Regex tag_re = new Regex("({{.*}}", RegexOptions.Compiled);
                return result;
            }
        }
    }

使用Regex构造函数的行上的断点就可以了。下一个F10给出了异常

2 个答案:

答案 0 :(得分:1)

不,在MEF中使用正则表达式没有问题。问题出在您的代码中。

根据错误消息,当您尝试创建新的正则表达式时,看起来您正在尝试空引用异常。如果没有看到代码示例,就不容易知道到底出了什么问题。

您可以发布代码示例吗?

答案 1 :(得分:0)

我很抱歉,我明白了,JaredPar你是对的 - 问题在正则表达式中是不平衡的。 “诊断”虽然是安静的误导,至少可以说