У вас возникнут проблемы с этим 30 раз в секунду в течение нескольких часов. Каждый компилятор создаст другую сборку в памяти, и нет возможности выгрузить загруженную сборку без разрыва домена приложения. Таким образом, ваш объем памяти будет расти без ограничений.
Если вы хотите предотвратить использование неограниченной памяти, вам необходимо скомпилировать и загрузить сборку в отдельном домене приложения. Затем вы можете снести этот домен приложения, чтобы выгрузить загруженную сборку.
Но создание нового домена приложения, сборка сборки и разрывание домена приложения 30 раз в секунду? Возможно, я полагаю. Возможно, вы могли бы создать домен приложения и загрузить сборки в него в течение минуты, а затем снести этот домен приложения и создать новый. Это, по крайней мере, ограничит использование вашей памяти, а также сократит обработку. Но я не знаю, какой размер мог занимать 1800 загрузочных сборок.
Вам определенно нужно поэкспериментировать с пространством имен System.CodeDom
. Я подозреваю, что вы слишком много задаете. Комментарий, рекомендующий интерпретируемый язык, может быть способом пойти. Это очень сложно сказать без дополнительной информации о вашем приложении.
Это, вероятно, будет быстрее, если вы отделенный каждое поле и не требует разбора, например .: 'вар PropertyName = "PropertyX"; var subPropertyName = "Id"; var val = "y"; '. Кроме того, возможно, вам потребуется снизить ваши ожидания относительно скорости .. в зависимости от ваших точных требований. –
Как 'var val' становится' y' из выражения? –
Возможно, вам захочется ознакомиться с некоторыми предложениями в [этом сообщении] (http://social.msdn.microsoft.com/Forums/en-US/31ac96da-415e-424b-9e1f-6aec86c4c3ae/how-to-convert- string-in-systemlinqexpressionsexpression-in-c) –