Если вы беспокоитесь о разборе одной и той же строки и многократной компиляции результата, вам следует использовать кеширование.
Просто внедрите кеш с помощью чего-то вроде Dictionary<string, YourDelegate>
на сервере.Когда вы получаете строку, проверьте ее в кеше и, если она отсутствует, создайте делегат.
Если строка слишком длинная (что будет означать вызов GetHashCode()
, который используется Dictionary
(это может занять слишком много времени), вы можете назначить некоторые идентификаторы или имена делегатам:
Клиент создает строку и уникальный идентификатор для нее (возможно, Guid
).Он отправляет на сервер сообщение: «Вот спецификация для делегата с этим идентификатором».А потом еще одна поговорка: «использовать делегат с этим идентификатором».Второе сообщение может быть вызвано повторно.