通用上下文

发布于 2024-11-15 21:24:15 字数 243 浏览 3 评论 0原文

我有一个类将在多种类型的应用程序中使用:Web、WCF 服务、Windows 应用程序。在网络应用程序中,我想在 wcf 中使用 OperationContext 中的 HttpContext ,在 Windows 中...a(我什至不知道也许是 IDictionary >?)如何才能做到这一点,以便在我的类中我只是访问一个通用的东西来提取数据,但为每种类型的应用程序使用适当的上下文?

I have a class that will be used in multiple types of apps: web, wcf service, windows app. In the web app I want to use HttpContext in wcf the OperationContext and in Windows... a (I don't even know maybe an IDictionary?) How can this be done so that in my class I am just accessing a generic thing to pull data out of but use the appropriate context for each type of application?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦幻的心爱 2024-11-22 21:24:15

使用适配器设计模式
C# 示例可以在此处找到。

华泰

Use Adapter design patten.
A C# example can be found here.

HTH

小傻瓜 2024-11-22 21:24:15

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

interface IContextWrapper
{   
}

class HttpContextWrapper : IContextWrapper
{      
}

class OperationContextWrapper : IContextWrapper
{
}

class UnitTestWrapper : IContextWrapper
{
}

class MyContextUser
{
    private readonly IContextWrapper contextWrapper;

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

您所看到的,这具有使您的类单元可测试的额外好处

Create your own abstraction around the context and then inject a concrete version into the class depending on the environment so for example

interface IContextWrapper
{   
}

class HttpContextWrapper : IContextWrapper
{      
}

class OperationContextWrapper : IContextWrapper
{
}

class UnitTestWrapper : IContextWrapper
{
}

class MyContextUser
{
    private readonly IContextWrapper contextWrapper;

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

As you can see this has the added benefit of making your class unit testable

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文