Mugen Injection [Условия для зависимостей]
Когда вы регистрируете компонент, вы можете задать условие, при котором, этот компонент, будет считаться подходящим для активации.
Список всех доступных условий:
- WhenInto - указывает, что привязка должна использоваться только для инъекций в указанный тип. Типы, которые достижимы из указанного типа считаются не подходящими под условие.
- WhenIntoIsAssignable - указывает, что привязка должна использоваться только для инъекций в указанный тип. Типы, которые достижимы из указанного типа считаются подходящими под условие.
- WhenNamespaceEqual -указывает, что привязка должна использоваться только для инъекций в тип, когда пространство имен равны.
- WhenClassHasAttribute - указывает, что привязка должна использоваться только тогда, когда класс, имеет атрибут указанного типа.
- When - указывает, что привязка должна быть использована только для запросов, которые поддерживают указанное условие.
// Create your MugenInjector. _injector = new MugenInjector(); _injector.Bind<Alpha>().ToSelf().WhenInto<Program>(); _injector.Bind<Alpha>().ToSelf().WhenIntoIsAssignable<Alpha>(); _injector.Bind<Alpha>().ToSelf().WhenClassHasAttribute<SerializableAttribute>(); _injector.Bind<Alpha>().ToSelf().WhenNamespaceEqual("Test"); _injector.Bind<Alpha>() .ToSelf() .When(context => context.TypeInto != null && context.TypeInto.FullName.StartsWith("S"));