C # реализация кеша приложения - PullRequest
0 голосов
/ 30 ноября 2011

В нашем приложении мы хотим «переводить» метки. Я не хочу использовать базу данных несколько раз для одного ярлыка. Поэтому, когда я уже получил термин X, я хочу получить этот термин из кэша.

Теперь я думаю о том, как это реализовать. Я мог бы подумать об этих вариантах:

  1. Создать синглтон. В общем, вы создаете публичную переменную
  2. Создайте класс со статическим списком, который содержит кэшированные переводы.

Что делать?

Я использую C # winforms.

Edit: Я имею в виду не перевод на язык, а перевод термина. У наших клиентов есть собственный термин для того же. Так что это настройка в нашем приложении. Скажем, у вас есть термин X, они могут сказать, что я хотел бы назвать Z. Поэтому везде в приложении, где используется X, должен отображаться Z.

Каждая форма имеет несколько ярлыков с (одинаковыми) терминами. Таким образом, сами данные невелики (всего одно слово), но вполне возможно, что они попадают в базу данных 20 раз, чтобы получить термины для одной формы.

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

ASP.NET HttpCache также доступен за пределами ASP.NET.Вы можете использовать это в качестве механизма поддержки вашего кеша и получать к нему доступ через Singleton.

Другим вариантом, если он подходит вашему сценарию, может быть шаблон T4, который будет анализировать вашу базу данных и генерировать класс во время компиляции.Это намного быстрее, чем поиск базы данных во время выполнения.Только если что-то в вашей базе данных изменится, вам придется перезапустить T4 и развернуть новую сборку.

0 голосов
/ 30 ноября 2011

почему бы вам не попробовать настройки приложения.хотя я не рекомендую его для большого объема данных, потому что он имеет тенденцию создавать нагрузку на приложение и не предназначен для хранения больших данных, но вы можете использовать его, если объем данных небольшой.

Перейти к проекту> Свойства> Вкладка «Настройки» и добавьте параметр типа «Тип пользователя» (используйте опцию «Обзор» для большего количества типов) или что-то более близкое к вашим потребностям.Во время выполнения присвойте или получите, используя

<datatype> obj=Properties.Settings.Default.<yoursettingname>;

Adding Settings

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...