IUserRepository,其中是实现代码
本文关键字:实现 代码 IUserRepository | 更新日期: 2023-09-27 18:26:36
我正试图实现SimpleInjector以使用Dependency Injector,但网站上的示例使用IUserRepository接口,但没有关于它从哪里混合的信息。
可以帮助我知道在哪里执行。
protected void Application_Start(object sender, EventArgs e)
{
// Create the container as usual.
var container = new Container();
// Register your types, for instance:
container.Register<IUserRepository, SqlUserRepository>();
container.RegisterPerWcfOperation<IUnitOfWork, EfUnitOfWork>();
// Register the container to the SimpleInjectorServiceHostFactory.
SimpleInjectorServiceHostFactory.SetContainer(container);
}
正如John所说,这些只是示例。
假设您创建了自己的类和接口:
public interface IOrderService
{
void CancelOrder(int orderId);
}
public class SqlOrderService : IOrderService
{
public void CancelOrder(int orderId) { /* logic here */ }
}
你可以像他们的例子一样注册它,比如:
container.Register<IOrderService, SqlOrderService>();
稍后,当您请求IOrderService
(例如在另一个类的构造函数中)时,您实际上会得到一个具体的SqlOrderService
实例。
所以他们的例子:
container.Register<IUserRepository, SqlUserRepository>();
建议他们有这样的类结构:
public interface IUserRepository
{
...
}
public SqlUserRepository : IUserRepository
{
...
}
IUserRepository
是您可能已经创建的东西(与SqlUserRepository
一起)。他们只是展示了他们的注射是如何工作的一个例子。