Я регистрирую несколько экземпляров определенного класса, реализующего некоторый интерфейс (в примере IInteractivityTarget
).
RootContainer.RegisterInstance<IInteractivityTarget>(Name, new InteractivityTarget(Name));
Я также зарегистрировал Enumerable типа, чтобы автоматически разрешать список всехзарегистрированные экземпляры.
Container.RegisterType<IEnumerable<IInteractivityTarget>, IInteractivityTarget[]>();
Теперь проблема в том, что у меня нет шансов определить какой-то порядок (-info), чтобы получить элементы в определенном порядке при их разрешении.Как этого достичь?Я не хочу расширять IInteractivityItem с помощью свойства SortHint.
Более подробный пример:
public void RegisterInteractivity(string name, string sortHint){
if (!Container.IsRegistered(typeof(IEnumerable<IInteractivityTarget>))){
Container.RegisterType<IEnumerable<IInteractivityTarget>, IInteractivityTarget[]>();
}
Container.RegisterInstance<IInteractivityTarget>(Name, new InteractivityTarget(Name, sortHint));
}
RegisterInteravtivity("Show in View A", "aaa");
RegisterInteravtivity("Show in View A", "bbb");
RegisterInteravtivity("Show in View A", "ddd");
RegisterInteravtivity("Show in View A", "eee");
RegisterInteravtivity("Show in View A", "ccc");
RegisterInteravtivity("Show in View A", "aab");
/// --> this should be resolved ordered by SortHint
var interactivityTargets = Container.Resolve<IEnumerable<IInteractivity>>()