Со следующим:
public class AClass
{
public ADependent Dependent { get; set; }
}
public class ADependent
{
public ADependent(AClass ownerValue) {}
}
со следующими регистрациями ...
builder.RegisterType<AClass>().PropertiesAutowired().InstancePerDependency();
builder.RegisterType<ADependent>().PropertiesAutowired().InstancePerDependency();
Когда я разрешаю AClass, как мне убедиться, что 'ownerValue' является экземпляромAClass решается, а не другой экземпляр?Thx
ПОСЛЕДОВАТЕЛЬНО ВКЛЮЧЕНО
Приведенный выше пример на самом деле не улавливает проблему должным образом, а именно как подключить ADependent при регистрации при сканировании ... например
public class AClass : IAClass
{
public IADependent Dependent { get; set; }
}
public class ADependent : IADependent
{
public ADependent(IAClass ownerValue) {}
}
// registrations...
builder.RegisterAssemblyTypes(assemblies)
.AssignableTo<IAClass>()
.As<IAClass>()
.InstancePerDependency()
.PropertiesAutowired();
builder.RegisterAssemblyTypes(assemblies)
.AssignableTo<IADependent>()
.As<IADependent>()
.InstancePerDependency()
.PropertiesAutowired();
Функция, которую я ищу, на самом деле представляет собой другой тип отношений, например
public class ADependent : IADependent
{
public ADependent(OwnedBy<IAClass> ownerValue) {}
}
OwnedBy указывает, что ownerValue - это экземпляр, который вызвал создание ADependent.Имеет ли что-то подобное смысл?Это, безусловно, сделает подключение компонентов пользовательского интерфейса быстрым.