为什么我的 BreezeController 被构造了好几次?

Why is my BreezeController constructed several times?

我希望我用于 Breeze 的 API 控制器只构建一次。但是,如果我在构造函数中设置断点,启动我的应用程序并以用户身份登录……我的控制器被构造了好几次。

在哪里可以找到构建 BreezeController 的工作流程的描述?每条路线是否有一个控制器实例?

  [BreezeController]
  public class DomainController : ApiController
  {
    private readonly IUnitOfWork _unitOfWork;
    private readonly ApplicationUserManager _userManager;

    public DomainController(IUnitOfWork unitOfWork)
    {
      _unitOfWork = unitOfWork;
      _userManager = HttpContext.Current.GetOwinContext()
                                .GetUserManager<ApplicationUserManager>();   
    }
  ...

之所以每次都构造这个,是因为一个BreezeController只是一个WebApiController。 Web Api 控制器在每次请求时默认实例化。如果您对 Api 控制器的生命周期以及为什么它们在每个请求上实例化的更多信息感兴趣,Whosebug 上有几篇关于此的好帖子。 BreezeController 属性仅更改 API 控制器上的一些过滤器提供程序,还将 JSON 格式化程序更改为与 Breeze 客户端一起使用的格式化程序。