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);
}

IUserRepository,其中是实现代码

正如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一起)。他们只是展示了他们的注射是如何工作的一个例子。