У меня есть часть кода с зависимостями, которые выглядят следующим образом:
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)..
.
Мой вопрос : Что именно делает этот флаг за кулисами, чтобы решить эти циклическиезависимости ??