Я запустил проект, использующий MS Unity в качестве своего контейнера IOC, и у меня есть два вопроса относительно переопределения параметров.
public interface ITab
{
bool AllowVisible {get;set;}
}
class Tab : ITab
{
IViewModel vm;
public Tab(IViewModel vm)
{
this.vm = vm;
}
public bool allowVisible = false;
public bool AllowVisible
{
get{ return allowVisible};
set{ allowVisible = vlaue};
}
}
public interface IViewModule
{
string Name;
}
public class ViewModel
{
public string Name;
}
1) Как настроить тип Tab вединицей, чтобы я мог передать значение true или false свойству AllowVisible в качестве параметра?Я не хочу добавлять дополнительную строку tab.AllowVisible = true; , как в случае ниже
void Main()
{
ITab tab = unityContainer.RegisterType<ITab, Tab>();
tab.AllowVisible = true;
}
2) Если у меня уже есть экземпляр ViewModel, такойкак vm в приведенном ниже примере, как заставить контейнер разрешить объект Tab при передаче объекта vm в его конструктор?В настоящее время, когда я определяю для объекта tab , контейнер создает другой экземпляр ViewModel. Я хочу, чтобы экземпляр vm использовался в качестве модели представления объектов вкладки?
void Main()
{
unityContainer.RegisterType<IViewModel, ViewModel>();
unityContainer.RegisterType<ITab, Tab>();
ViewModel vm = unityContainer.Resolve<IViewModel>();
ITab tab = unityContainer.RegisterType<ITab, Tab>();
}