0
我正在嘗試實現代理設計模式的緩存服務如下。代理設計模式與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容器(團結/ Autofac)創造真正的服務和緩存的服務對象,我可以註冊IProductService到ProductService或CachedProductService但CachedProductService又需要IProductService object(ProductService)在創建期間。
我想在這樣的事情來:
應用程序將目標IProductService並要求IoC容器的一個實例,並根據應用的配置(如果緩存啓用/禁用)時,應用程序將提供ProductService或CachedProductService實例。
任何想法?謝謝。