2009-07-12 6 views
0

DjangoレンダリングエンジンのVisual Studioエディタ拡張機能をビルドしています。私はそれを始めたばかりなので、これまでは本当にシンプルで、これまでのところ、私が期待していることを強調しています。 それは、解析ロジックを追加するまでやりました。解析の一部は正規表現に依存します。そしてここに私の問題があります: 静的変数、メンバ変数、何か、私は新しいRegexを呼び出すたびに "インスタンスに設定されていないオブジェクト"例外をどのようにしても問題ありません。 MEFで正規表現(RegEx)を使用する際に問題はありますか?ここ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で例外が発生する

答えて

0

私は申し訳ありませんが、私はそれを理解した、JaredParあなたは正しい - 問題は、正規表現の不均衡なparenです。 名前空間NDjango.Designer.Parsing { [エクスポート(typeof演算(IParser))] パブリッククラスパーサ:IParser { 公共リスト "の診断は、" しかし、それがあることを確認し、ここで少なくとも

1

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

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

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

+0

を言うのは誤解を招く静かでした解析(IEnumerable テンプレート) { var result = new List (); 正規表現tag_re =新しい正規表現( "({{*}。}"、RegexOptions.Compiled); リターン結果、 } } }私はそれがうまく当たった新しい正規表現の行にブレークポイントを置く が、次のF10ブーム!!! – mfeingold

+0

フォーマットに申し訳ありません – mfeingold

+0

@mfeingold - このコードスニペットを公開する適切な方法は、質問を編集してそこに追加することです。 –

関連する問題