У меня есть часть кода с зависимостями, которые выглядят следующим образом:
public class MyPage : Page //ASPX WebForms page
{
public IPersonBl PersonBl { get; set; }
}
public class PersonBl : IPersonBl
{
public PersonBl(ISomeMagicBl magicBl){...}
}
public class SomeMagicBl : ISomeMagicBl
{
public IPersonBl PersonBl { get; set; }
public SomeMagicBl(/*Other dependencies*/) {...}
}
Конфигурация моего модуля выглядит следующим образом
...
builder.RegisterAssemblyTypes(ThisAssembly).Where(t => t.Name.EndsWith("BL")).AsImplementedInterfaces().PropertiesAutowired(PropertyWiringFlags.AllowCircularDependencies).InstancePerLifetimeScope();
...
Как можно видеть, у меня есть циклических зависимостей в моих классах, которые я смог разрешить с помощью .. PropertiesAutowired (PropertyWiringFlags.AllowCircularDependencies) ..
.
Мой вопрос : Что именно этот флаг делает за кулисами для решения этих циклических зависимостей ??