Я пишу приложение службы Windows, которому необходимо многократно сериализовать и десериализовать XML-документы во время его выполнения. Поскольку мне нужно сериализовать и десериализовать универсальные типы, которые не известны во время компиляции (я априори не знаю, сколько типов мне нужно сериализовать / десериализовать), я хотел бы знать, если это хорошая идея, сохранить кеш объектов DataContractSerializer, которые я создаю для сериализации и десериализации объектов.
Я задаю этот вопрос, потому что я знаю, что это хорошая идея для кэширования экземпляров класса XmlSerializer, поскольку они создают динамическую сборку в памяти под капотом, а сборки, динамически создаваемые в памяти, не собираются мусором.
Я читал, что DataContractSerializer опирается на облегченную генерацию кода, но я не обычно с деталями этого. Вот почему я задаю этот вопрос, мне нужно понять, если я создаю экземпляры DataContractSerializer по мере необходимости, это приведет меня к утечке памяти, как это делает XmlSerializer?
Я решил использовать DataContractSerializer вместо XmlSerializer для возможности сериализации внутренних свойств.