Регистрация DynaCaches с помощью SimpleInjector

1

Привет Я пытаюсь использовать Dynacache в моем решении для кэширования данных, которые я возвращаю из базы данных, поэтому, когда я использую сетку Telerik для фильтрации страницы данных и т.д., Мне не нужно возвращаться в БД, чтобы каждый раз получать данные.

Пример на странице DynaCache показывает, что он используется с Ninject DI, как показано ниже:

kernel.Bind<IDynaCacheService>().To<MemoryCacheService>();
kernel.Bind<ITestClass>().To(Cacheable.CreateType<TestClass>());

Я использую SimpleInjector в качестве контейнера DI. Кто-нибудь использовал Dynacache с SimpleInjector, так как мне трудно получить правильный синтаксис для регистрации Dynacache с помощью SimpleInjector так же, как показано в Ninject

Теги:
dependency-injection
simple-injector
dynacache

2 ответа

1
Лучший ответ

Я собрал сообщение в блоге, охватывающее это сейчас - ответ, помеченный как правильный, на самом деле не прав - MemoryCacheService должен быть одноэлементным, поскольку он содержит экземпляр MemoryCache, который должен быть разделен во всех зависимых экземплярах.

2

Эквивалент простого инжектора:

container.Register<IDynaCacheService, MemoryCacheService>();
container.Register(typeof(ITestClass), Cacheable.CreateType<TestClass>());

Однако, поскольку MemoryCacheService - это тип структуры, вам лучше (как объяснено здесь) сделать регистрацию с использованием делегата фабрики:

container.Register<IDynaCacheService>(() => new MemoryCacheService());
container.Register(typeof(ITestClass), Cacheable.CreateType<TestClass>());

Ещё вопросы

Сообщество Overcoder
Наверх
Меню