Здравствуйте, mr.sashich, Вы писали:
MS>А если IoC контейнер не используется как подсунуть одно "окно" не используя сингелтон?
Через GetService(...). Сервисы образуют иерархию, каждый дочерний сервис имеет ссылку на родителя, и если при вызове GetService искомый сервис на данном уровне не нашелся, вызов делегируется выше по иерархии, и так до тех пор пока не доберется до корневого сервис-локатора.
В этом смысле синглтон еще большая гадость, так как позволяет добраться до корневого сервиса в обход иерархии.
Почитай подробнее про IServiceProvider, например здесь:
Lightweight Containers and Plugin Architectures: Dependency Injection and Dynamic Service Locators in .NET... << RSDN@Home 1.2.0 alpha rev. 673>>