通用语境

时间:2011-06-16 13:53:12

标签: c# asp.net .net wcf httpcontext

我有一个类将用于多种类型的应用程序:web,wcf服务,windows应用程序。在网络应用中,我想在HttpContext wcf和Windows中使用OperationContext ... a(我甚至不知道可能是IDictionary?)如何做到这一点?在我的课程中,我只是访问一个通用的东西来提取数据但是为每种类型的应用程序使用适当的上下文?

2 个答案:

答案 0 :(得分:1)

围绕上下文创建自己的抽象,然后根据环境将具体版本注入到类中,例如

interface IContextWrapper
{   
}

class HttpContextWrapper : IContextWrapper
{      
}

class OperationContextWrapper : IContextWrapper
{
}

class UnitTestWrapper : IContextWrapper
{
}

class MyContextUser
{
    private readonly IContextWrapper contextWrapper;

    public MyContextUser(IContextWrapper contextWrapper)
    {
        this.contextWrapper = contextWrapper;
    }
}

正如您所看到的,这样可以使您的班级单元可测试

答案 1 :(得分:1)

使用Adapter design patten
可以找到一个C#示例here

HTH