Я пытаюсь реализовать шаблон прокси-прокси для служб кэширования, как показано ниже.Схема прокси-дизайна с IoC
public interface IProductService
{
int ProcessOrder(int orderId);
}
public class ProductService : IProductService
{
public int ProcessOrder(int orderId)
{
// implementation
}
}
public class CachedProductService : IProductService
{
private IProductService _realService;
public CachedProductService(IProductService realService)
{
_realService = realService;
}
public int ProcessOrder(int orderId)
{
if (exists-in-cache)
return from cache
else
return _realService.ProcessOrder(orderId);
}
}
Как использовать IoC контейнер (Unity/Autofac), чтобы создать реальную услугу и кэшированные объекты службы, как я могу зарегистрировать IProductService в ProductService или CachedProductService но CachedProductService в свою очередь, требует IProductService объект (ProductService) во время создания.
Я пытаюсь прийти к чему-то вроде этого:
Приложение нацелит IProductService и запросить IoC контейнер для экземпляра и в зависимости от конфигурации приложения (если кэш включен/выключен), то приложение будет предоставлено с ProductService или CachedProductService экземпляр.
Любые идеи? Благодарю.