0

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 は例外を与えます

4

2 に答える 2

1

いいえ、MEF で正規表現を使用しても問題はありません。問題はあなたのコードにあります。

エラー メッセージに基づいて、新しい正規表現を作成しようとすると、null 参照例外が発生しているように見えます。コード サンプルを見ないと、何が問題なのかを正確に知ることは容易ではありません。

コードサンプルを投稿できますか?

于 2009-07-12T17:10:57.760 に答える
0

申し訳ありませんが、私はそれを理解しました、JaredPar あなたは正しかったです - 問題は正規表現の不均衡な括弧でした。「診断」は控えめに言っても誤解を招くような静かなものでした

于 2009-07-12T19:36:51.710 に答える