我有一个服务接口(ILoader),它由多个加载程序类实现。我还有一个ILoader的实现,它是一个装饰器:
public interface ILoader { }
public class LoaderImpl0 : ILoader { }
public class LoaderImpl1 : ILoader { }
public class CachedLoader : ILoader
{
public CachedLoader(ILoader inner) { }
}
这是我的第一次尝试:
container.Register
(
Component.For<LoaderImpl0>().Named("loader0"),
Component.For<LoaderImpl1>().Named("loader1"),
Component
.For<ILoader>( )
.ImplementedBy<CachedLoader>( )
.ServiceOverrides( ServiceOverride.ForKey( "inner" ).Eq( "loader0" ) )
.Named("cachedLoader0"),
Component
.For<ILoader>()
.ImplementedBy<CachedLoader>()
.ServiceOverrides(ServiceOverride.ForKey("inner").Eq("loader1"))
.Named("cachedLoader1")
);
-
container.ResolveAll<ILoader>()
返回所有4个注册的加载程序(即使我还没有注册加载程序impl。。。使用ILoader服务的类)。
-