小编see*_*_87的帖子

在Controller的构造函数外部使用依赖注入

所以这就是问题,我的mvc3项目使用依赖注入,并有一个基本的通用IRepository类,其他存储库派生自此类.

所以我可以提前做并在控制器中执行此操作:

public class SomethingController
{
    IOrderRepository repository;

    public SomethingController(IOrderRepository repo)
    {
        this.repository = repo;
    }

    public ActionResult SaveOrder(Order order)
    {
        repository.add(order)
        unitOfWork.CommitChanges();  // THIS works!
    }
}
Run Code Online (Sandbox Code Playgroud)

但现在我需要在这样的自定义静态非控制器中使用其中一个存储库:

static class OrderParser
{
    private IOrderRepository repo;

    public static DoWork()
    {
        repo = DependencyResolver.Current.GetService<IOrderRepository>();

        var ordersInDB = repo.GetAllOrders(); //THIS works!

        //But!
        var ordersForInsertion = new List<Order>();


        //do some backgroundworker magic                     
        //fetch txt files from an ftp server
        var ordersForInsertion = ParseTextFilesIntoOrders();

        foreach order in ordersForInsertion 
             repo.add(order)
        unitOfWork.CommitChanges();
        // THIS doesnt commit …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection asp.net-mvc-3

7
推荐指数
1
解决办法
7488
查看次数

标签 统计

asp.net-mvc-3 ×1

c# ×1

dependency-injection ×1