ServiceState在服务层上的包装器

时间:2014-04-20 21:43:02

标签: asp.net-mvc dependency-injection modelstate

我的服务层对象看起来像这样:

public class UserRepository
{

    [Inject]
    public IUnitOfWork Database { get; set; }

    [Inject]
    public IUserContext User { get; set; }

    [Inject]
    public IModelValidator ModelValidator { get; set; }

    public Response CreateUser(UserDTO dto) {
        if (ModelValidator.IsValid()) 
            return new Response {SuccessCode = -1, Message = "Please check all properties"};

        //Code to create the user goes here
    }

    public class Response {
        public int SuccessCode {get; set;}
        public string Message {get; set;}
    }
}

我希望在我的服务层上执行验证,以便整个业务逻辑独立于MVC实现运行。

我希望使用DI注入MvcModelStateValidationWrapper,但是还没有找到一种方法来访问任何Controller上常用的ModelStateDictionary

有没有办法创建一个包装器并基于每个请求进行实例化?

我想要最终实现的是对我的单元测试执行模拟验证。

0 个答案:

没有答案