0

我正在为我的 Django 渲染引擎构建一个 Visual Studio 编辑器扩展。到目前为止,我刚刚开始使用它,它真的很简单,并且到目前为止它完成了我期望它做的事情 - 突出显示等等。或者直到我开始添加解析逻辑。部分解析依赖于正则表达式。这是我的问题:无论我如何尝试 - 静态变量、成员变量 - 任何东西,每次我调用 new Regex 它都会给我“对象未设置为实例”异常。在 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 给出了例外

4

2 回答 2

1

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

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

您可以发布代码示例吗?

于 2009-07-12T17:10:57.760 回答
0

对不起,伙计们,我想通了,JaredPar 你是对的 - 问题是正则表达式中的不平衡括号。“诊断”虽然至少可以说是安静的误导

于 2009-07-12T19:36:51.710 回答