サービス インターフェイス ICustomerService があり、次の 2 つのタイプで実装されています。
public class CustomerService : ICustomerService
{
// stuff
}
public class CachedCustomerService : ICustomerService
{
public CachedCustomerService(CustomerService service) { }
}
キャッシュされたサービスは、キャッシュして通常のサービスに委譲します。
登録のために、 ICustomerService を CachedCustomerService に解決し、 CustomerService を独自のタイプに登録します。
これはうまくいきます。
私が疑問に思っているのは、具体的な CustomerService の代わりに CachedCustomerService にインターフェースを要求させることができるかどうかです。その理由は、最終的に 2 種類の CustomerService になる可能性があり、それぞれに固有のキャッシュ バージョンを (可能であれば) 避けたいからです。
したがって、CachedCustomerService のコンストラクターは次のように変更されます。
public class CachedCustomerService : ICustomerService
{
// notice the ICustomerService
public CachedCustomerService(ICustomerService service) { }
}
私は登録を完全に制御できますが、解決はasp.net mvcのボウルによって行われます。
ありがとう!