use*_*993 1 c# dependency-injection inversion-of-control unity-container
我想我错过了如何实际使用IoC/DI的关键部分.我碰巧使用的是Unity容器.我知道如何设置一个类来注入它的依赖项,我也知道如何使Unity寄存器成为一种类型.
但我不知道的是如何实际使用这些注册.
例如:
var container = new UnityContainer();
container.RegisterType<IRepository, XmlRepository>();
var service = new MyService(container.Resolve<IRepository>());
public interface IRepository
{
void GetStuff();
}
public class XmlRepository : IRepository
{
public void GetStuff()
{
throw new NotImplementedException();
}
}
public class MyService
{
private readonly IRepository _myRepository;
public MyService(IRepository repository)
{
_myRepository = repository;
}
}
Run Code Online (Sandbox Code Playgroud)
这里我有一个服务层,它接受一个类型的参数IRepository.这是我似乎不理解的容器部分.
var service = new MyService(...)正在调用container.Resolve这样做的正确方法吗?