【发布时间】:2011-06-09 16:36:56
【问题描述】:
我是 IoC 的新手,我正在尝试开始使用 StructureMap,但是当我尝试获取对象实例时它会抛出 NullReferenceException。这是我的初始化代码:
ObjectFactory.Initialize(x =>
{
x.ForRequestedType<IRepository<Customer>>().TheDefaultIsConcreteType<EFRepository<Customer>>();
x.ForRequestedType<ICustomerManager>().TheDefaultIsConcreteType<CustomerManager>();
});
ICustomerManager 使用 ctor 注入并接收 IRepository:
public class CustomerManager : ICustomerManager
{
IRepository<Customer> _repository;
public CustomerManager(IRepository<Customer> repository)
{
_repository = repository;
}
public Customer GetCustomerById(int id)
{
return _repository
.With(c => c.PhoneNumbers)
.FirstOrDefault<Customer>(c => c.Id == id);
}
public IEnumerable<Customer> GetCustomersByName(string lastName, string firstName, string middleName)
{
return _repository.Query(new CustomerMatchesName(lastName, firstName, middleName));
}
}
然后在我的服务层代码中,这行抛出异常:
var manager = ObjectFactory.GetInstance<ICustomerManager>();
我真的不知道从哪里开始调试它,因为我对这些概念都很陌生。关于在这样一个简单的场景中可能出现什么问题的任何想法?
【问题讨论】:
标签: c# dependency-injection structuremap