【问题标题】:How to create a wrapper class that uses session如何创建使用会话的包装类
【发布时间】:2019-02-28 04:22:09
【问题描述】:

为 3rd 方库创建包装类的正确方法是什么:

我已经像这样创建了一个包装器:

public class UserContextWrapper
{
     // 3rd party lib
     private UserContext _userContext;

     public string City {
          get { return _userContext.City; }
     }

     public Organization Organization {
          get { return _userContext.Organization; }
     }

     // Create properties that wrap UserContext 3rd party lib properties
}
  1. 这是创建包装器的正确方法吗?
  2. 我需要使用(第 3 方库)组织属性,我无法模拟,因为它在其构造函数中使用了会话:

public class Organization() { // 填写会话信息 };

  • 我将如何处理这些类型的属性?
  • 我是否也必须为组织创建包装器? (OrganizationWrapper => 然后在 UserContextWrapper 中使用该包装器?)

【问题讨论】:

  • 您实际上是通过会话还是只是会话中获取值?你能显示 actual Organization 构造函数而不是注释掉参数吗?
  • 为什么需要扭曲它?除了您指示的传递槽参数之外,您还添加了哪些功能?
  • 使用会话中的值,而不是会话本身
  • 所以对会话没有直接依赖,那么模拟它有什么问题呢?我认为您没有足够的细节来给出有效的答案。也许展示一些不起作用的东西,以便我们了解如何解决它?
  • 好吧,当执行第 3 方 lib UserContext() ctor 时,它会填充其属性,其中之一是组织。此外,模拟框架 MOQ 会在 Organization 上引发错误,因为它无法创建新的 Organization(),因为它的构造函数从会话中读取

标签: c# asp.net .net


【解决方案1】:

This 帮助 只创建那些对您的代码有价值的函数,如果您需要其他函数,请一点一点将其添加到您的包装器中。

【讨论】:

    猜你喜欢
    • 2011-01-20
    • 1970-01-01
    • 2011-07-08
    • 2018-02-25
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    相关资源
    最近更新 更多