は、私がデータをフェッチするためのインタフェース、およびその実装があるとします。Castle Windsorでインターフェイスのネスト実装を使用するにはどうすればよいですか?
interface IResourceProvider
{
string Get(Uri uri);
}
class HttpResourceProvider : IResourceProvider
{
public string Get(Uri uri)
{
// Download via HTTP.
}
}
次のように私は城ウィンザーでこれを登録することができます
container.Register
(Component.For<IResourceProvider>().ImplementedBy<HttpResourceProvider>()
);
を(すべての罰金です)。
私は、次のように私は、キャッシングの実装を望んでいたことを決めた場合:
class CachingResourceProvider : IResourceProvider
{
public CachingResourceProvider(IResourceProvider resourceProvider)
{
_resourceProvider = resourceProvider;
}
public string Get(Uri uri)
{
// Return from cache if it exists.
// Otherwise use _resourceProvider and add to cache.
}
private readonly IResourceProvider _resourceProvider;
}
どのように私はこれらのネストされた依存関係を登録しますか?つまり、IResourceProvider
はCachingResourceProvider
によって実装されていますが、コンストラクタのどこにあるかを除き、HttpResourceProvider
です。
まったくあいまいではありません... –