私は次のセットアップしている場合:城ウィンザーオート複数のインタフェースの登録とそれに対応する実装
public interface IUsersQuery{}
public class UsersQuery : IUsersQuery {}
public interface ICompanyQuery{}
public class CompanyQuery : ICompanyQuery {}
をそれが自動すべてIABCQueryとその対応する実装ABCQuery 1つのショットではなく、ずつやって登録することが可能です1:私は、インターフェイスに
public interface IEnhancedQuery {}
public interface IUsersQuery : IEnhanceQuery {}
public interface ICompanyQuery : IEnhancedQuery {}
のマーカーのいくつかの並べ替えを追加する場合
container.Regsiter(
Component.For<ICompanyQuery>().ImplementedBy<CompanyQuery>(),
Component.For<IUsersQuery>().ImplementedBy<UsersQuery>()
)
私は多分考えていました
私はそれを行うことができるかもしれませんが、私はAllTypesによる自動登録でそれらをすべて登録するのに苦労しています。
container.Register(AllTypes.FromThisAssembly().BasedOn<IEnhancedQuery>());
var iQueries = container.ResolveAll<IEnhancedQuery>();
foreach (IEnhancedQuery p in iQueries)
{
var actualInterface = // how to get the actual interface type of p;
// would the following work?
container.Register(Component.For(actualInterface)
.ImplementedBy(AllTypes.FromThisAssembly().BasedOn(actualInterface)
.WithService.FirstInterface()));
}
「Container.Register(AllTypes.FromThisAssembly()。BasedOn c.LifeStyle.Is(LifestyleType.Transient))); 'Then IUsersQuery - > UserQueryをコンテナに入れます。 –
Liao
具体的なタイプで自動的に名前を付ける方法はありますか? –