Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 一般语境_C#_Asp.net_.net_Wcf_Httpcontext - Fatal编程技术网

C# 一般语境

C# 一般语境,c#,asp.net,.net,wcf,httpcontext,C#,Asp.net,.net,Wcf,Httpcontext,我有一个类将用于多种类型的应用程序:web、wcf服务、windows应用程序。在web应用程序中,我想在wcf中使用HttpContext,在Windows中使用OperationContext。。。a(我甚至不知道可能是I词典?)如何做到这一点,以便在我的类中,我只是访问一个通用的东西来提取数据,但为每种类型的应用程序使用适当的上下文?围绕上下文创建自己的抽象,然后根据环境向类中注入具体的版本,例如 interface IContextWrapper { } class HttpCo

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

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

interface IContextWrapper
{   
}

class HttpContextWrapper : IContextWrapper
{      
}

class OperationContextWrapper : IContextWrapper
{
}

class UnitTestWrapper : IContextWrapper
{
}

class MyContextUser
{
    private readonly IContextWrapper contextWrapper;

    public MyContextUser(IContextWrapper contextWrapper)
    {
        this.contextWrapper = contextWrapper;
    }
}
如您所见,这样做还有一个额外的好处,就是使类单元可测试。使用。
可以找到一个C#示例