Can Unity автоматически разрешает IEnumerable<T>
?Разрешение IEnumerable <T> с Unity
Скажем, у меня есть класс с помощью этого конструктора:
public CoalescingParserSelector(IEnumerable<IParserBuilder> parserBuilders)
и настроить отдельные экземпляры IParserBuilder в контейнере:
container.RegisterType<IParserSelector, CoalescingParserSelector>();
container.RegisterType<IParserBuilder, HelpParserBuilder>();
container.RegisterType<IParserBuilder, SomeOtherParserBuilder>();
я могу сделать эту работу без необходимости реализовывать собственную реализацию от IEnumerable<IParserBuilder>
?
var selector = container.Resolve<IParserSelector>();
До сих пор я не был в состоянии выразить это в любой простой способ, но я все еще наращивают на Unity, так что я, возможно, пропустил что-то.
Приветствие! Это лучше, чем все другие варианты. – Jehof
И для заполнения IEnumerable для инъекции конструктора (который я надеялся увидеть в ответах здесь), пожалуйста, обратитесь к следующему вопросу. http://stackoverflow.com/questions/6304355/way-to-fill-collection-with-unity –
Слишком плохо, что вам нужно добавить новую регистрацию для каждого типа. Если было только что-то простое, как 'container.RegisterType (GetType (IEnumerable (Of)), GetType (Array (Of))) – Kurren