业务层分页的设计指南

时间:2012-10-09 22:27:34

标签: c# n-tier-architecture custompaging business-layer

WCF / C#N-Tier app。

我们已使用this snippet作为基本指南在我们的业务层中实施了分页。

我只是想知道 - 为了使分页功能可测试,我应该将寻呼机作为Manager类的公共属性还是将其注入构造函数中? 我们已经为单元测试注入了一个存储库,但是我认为不适合注入过多的注册路径。

或者,将寻呼机保密是否更好?页面大小无论如何都会在配置文件中指定,所以我想我可以在测试app.config中指定页面大小。

1 个答案:

答案 0 :(得分:1)

我会将你的寻呼机注入如下:

  public interface IPager {
     int PageSize {get;}
  }

你的具体课程将是简单的:

  internal class ConfigPager : IPager {
     public int PageSize {
         get{

             int pageSize = 10;  // default value
             Int32.TryParse(ConfigurationManager.AppSettings["PageSize"], out pageSize);
             return pageSize;
         }
     }
  }

通过注入IPager,您可以更全面地测试您的经理类,以确保它实际上尊重PageSize的不同设置,因为您可以轻松地模拟它并测试不同的大小。如果有人试图在您的经理中对页面大小值进行硬编码,则会出现这种情况。