【问题标题】:Design guidance on Business Layer Paging [closed]业务层分页设计指南 [关闭]
【发布时间】:2012-09-30 07:59:30
【问题描述】:

WCF/C# N 层应用。

我们在业务层中使用this snippet 作为基本准则实现了分页。

我只是想知道——为了使分页功能可测试,我应该将分页器设为 Manager 类的公共属性还是将其注入构造函数中? 我们已经注入了一个用于单元测试的存储库,但我认为沿着注入过多的路线走下去是不对的。

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

【问题讨论】:

  • 我认为注入太多没有问题。相反,使用 IoC 容器仅注入存储库,感觉不正确。

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


【解决方案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 的不同设置,因为您可以轻松地模拟它并测试不同的大小。这将指出有人可能尝试在您的管理器中硬编码页面大小值的任何情况。

【讨论】:

    猜你喜欢
    • 2011-02-23
    • 2011-06-16
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 2010-12-22
    • 2010-09-27
    • 1970-01-01
    相关资源
    最近更新 更多