Mugen Injection [Циклические зависимости]
Циклические зависимости - это, когда у вас есть класс (Alpha), который имеет зависимость от типа (Beta), а тип (Beta) имеет зависимость от типа (Alpha). В этом случае вы можете написать "behavior" для разрешения зависимости.
Пример кода:
public class Alpha { public Bravo Bravo { get; set; } public Alpha(Bravo bravo) { Bravo = bravo; } } public class Bravo { public Alpha Alpha { get; set; } public Bravo(Alpha alpha) { Alpha = alpha; } } public class CycleDependencyResolver : ICycleDependencyBehavior { #region Implementation of ICycleDependencyBehavior public bool Resolve(IBindingContext bindingContext, out object result) { if (bindingContext.Service == typeof(Bravo) && bindingContext.TypeInto == typeof(Alpha)) { result = new Bravo(null); return true; } result = null; return false; } #endregion } // Create your MugenInjector. _injector = new MugenInjector(); _injector.Components .Get<IBehaviorManagerComponent>() .Add<ICycleDependencyBehavior>(new CycleDependencyResolver()); var bravo = _injector.Get<Bravo>();