Я создаю расширение редактора Visual Studio для моего движка рендеринга Django. Я только начал это до сих пор, что это действительно просто, и пока он делает то, что я от него ожидаю - выделение и тому подобное.
Или до тех пор, пока я не начал добавлять логику разбора. Часть синтаксического анализа опирается на регулярные выражения. И вот моя проблема:
Независимо от того, как я стараюсь - статические переменные, переменные-члены - что угодно, каждый раз, когда я вызываю новый Regex, это дает мне исключение «Объект не установлен в экземпляр».
Есть ли проблема с использованием регулярных выражений (RegEx) в MEF?
здесь вы идете:
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 дает исключение