У меня есть программа, над которой я работаю, которая использует очень большое количество (> 100) динамически генерируемых выражений Regex.Каждое регулярное выражение используется для большого количества строк (в зависимости от ситуации, это может быть> 2k), поэтому я скомпилировал их и кэшировал их использование внутри.Тем не менее, программа запускается многократно (это часть инструмента сборки), и компиляция этих динамически генерируемых выражений занимает значительное время каждый раз, когда программа запускается.У меня уже есть кэш на диске (анализ не требуется, если кэш действителен), и я могу хранить в нем скомпилированные выражения Regex, однако я не могу найти способ сделать это правильно.Сначала я подумал об использовании Regex.CompileToAssembly, но Mono не поддерживает его, и программа должна работать как на Mono, так и на MS.net.Из-за этого я не могу найти хороший способ кэширования выражений.Мне нужен только метод IsMatch (string) из скомпилированного Regex, и у меня есть возможность изменить реализацию Mono Regex и включить ее в мою программу, но я не знаю, с чего начать.