我有一个服务接口 ICustomerService,并通过两种类型实现它:
public class CustomerService : ICustomerService
{
// stuff
}
public class CachedCustomerService : ICustomerService
{
public CachedCustomerService(CustomerService service) { }
}
缓存的服务然后只是缓存并委托给普通服务。
对于注册,我将 ICustomerService 解析为 CachedCustomerService,然后 CustomerService 只是为其自己的类型注册。
这工作正常。
我想知道是否可以使 CachedCustomerService 需要一个接口而不是具体的 CustomerService。原因是我们最终可能会得到两种类型的 CustomerService,我想避免(如果可能的话)针对每种类型的缓存版本。
因此 CachedCustomerService 的构造函数将更改为:
public class CachedCustomerService : ICustomerService
{
// notice the ICustomerService
public CachedCustomerService(ICustomerService service) { }
}
我完全控制了注册,但解决方法是由 asp.net mvc 的碗完成的。
谢谢!