русский

C# - ResourceManager - кешируем или как?

10.12.23 21:22
Re: C# - ResourceManager - кешируем или как?
 
alex445 коренной житель
in Antwort Murr 10.12.23 20:27, Zuletzt geändert 10.12.23 21:27 (alex445)
Думаю, что если посмотришь более внимательно, то найдешь где-нибудь ссылку на то, что ResourceManager аккуратно кеширует запрошенные данные...

В смысле кеширует? Загружает их один раз? Так это и так понятно. Нигде не встречал отдельного упоминания о кешировании - ни в описании в МСДНе, ни в исходниках. Т.е. открыл их и просто поиском по "cach" - ничего.


Проблема не в том, что сам менеджер кеширует или нет, а в том, что ничего не мешает создать несколько этих менеджеров, и каждый загрузит ресурсы заново. И я привёл кусок кода из класса, сгенеренного дефолтной студийной утилитой PublicResXFileCodeGenerator



Сам этот класс кеширует менеджера. Т.е. если обращаться к ресурсам из класса, то всё закешировано, а если как везде указано - из самим созданного менеджера, то нет. Тогда ты должен сам заботиться о кешировании этого менеджера.


Т.е. юзать этот менеджер самому вообще не надо - он юзается под капотом сгенеренным классом доступа к ресурсам и уже закеширован.


Единственная проблема с этим классом - он дубовый и мало что может. Если надо руками в коде выбирать имена ресурсов - пойдёт. А если я получаю эти имена в виде строк, то надо конструировать вот такие костыли, что я раньше приводил.

 

Sprung zu