2009-07-12 65 views
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; 
      } 
     } 
    } 

與正則表達式構造線A斷點命中就好了。下一個F10給出例外

回答

0

我很抱歉,我明白了,JaredPar你是對的 - 問題在正則表達式中是不平衡的。 「診斷」,雖然很安靜誤導,至少可以說

1

不,在MEF中使用正則表達式沒有問題。問題出在你的代碼中。

根據錯誤消息,當您嘗試創建新的正則表達式時,您看起來像是遇到空引用異常。在沒有看到代碼示例的情況下,知道究竟發生了什麼問題並不容易。

你可以發佈代碼示例嗎?

+0

肯定那就是: 命名空間NDjango.Designer.Parsing { [導出(typeof運算(IParser))] 公共類解析器:IParser { 公開名單解析(IEnumerable 模板) { var result = new List (); 正則表達式tag_re =新的正則表達式( 「({{*}}」,RegexOptions.Compiled); 返回結果; }} } 當我把斷點它擊中它就好了新的正則表達式行,但下一個F10 - 熱潮!!! – mfeingold 2009-07-12 17:26:55