在有关IoC容器有用性的问题中,获胜的提交者提到,使用IoC容器可以实现以下代码:
public class UglyCustomer : INotifyPropertyChanged
{
private string _firstName;
public string FirstName
{
get { return _firstName; }
set
{
string oldValue = _firstName;
_firstName = value;
if(oldValue != value)
OnPropertyChanged("FirstName");
}
}
private string _lastName;
public string LastName
{
get { return _lastName; }
set
{
string oldValue = value;
_lastName = value;
if(oldValue != value)
OnPropertyChanged("LastName");
}
}
}
变成这样:
var bindingFriendlyInstance = IoC.Resolve<Customer>(new NotifyPropertyChangedWrapper());
问题:
- 哪个神奇的IoC容器提供这种好处?
- 有一个实现这个的例子吗?
- 有什么缺点吗?
- 在一个具有复杂依赖关系的项目中,当我尝试将数据绑定到这些对象时,我会哭泣吗?