Я использую блок Unity для реализации Ioc.Я использую registerInstance, и так оно и будет.не могу изменить это.Проблема в том, что если мы сделаем это, как насчет зависимых объектов?Как справиться с этим.скажем,
public ClientUser(IDataServiceManager dsm)
{
oDataServiceManager = dsm;
}
, который работает с registerType, но как мы должны сначала создать экземпляр
IClientUser clientUser = new ClientUser();
SnapFlowUnityContainer.Instance.RegisterInstance<IClientUser>(clientUser);
Как это может работать?наш консультант сказал, используйте частные методы получения для установки зависимостей, пусть класс обрабатывает свой зависимый объект?не мог понять, как это сделать?
Обновление: Мне нужно знать, где я не прав, Как он будет создавать объект Dataservicemanger при создании clientUser
BootStrapper
IDataServiceManager dsm = new DataServiceManager();
IClientUser clientUser = new ClientUser();
SnapFlowUnityContainer.Instance.RegisterInstance<IDataServiceManager>(dsm);
SnapFlowUnityContainer.Instance.RegisterInstance<IClientUser>(clientUser);
Модульный тест:
BootStrapper.Register();
IClientUser oIclientUser = SnapFlowUnityContainer.Instance.Resolve<IClientUser>();
ClientUser Class:
public class ClientUser : UserServiceBase, IClientUser
{
[Dependency]
private IDataServiceManager DataServiceMgr { get; set; }
}