Общий контекст - PullRequest
       3

Общий контекст

1 голос
/ 16 июня 2011

У меня есть класс, который будет использоваться во многих типах приложений: веб, служба wcf, приложение для Windows.В веб-приложении я хочу использовать HttpContext в wcf OperationContext и в Windows ... a (я даже не знаю, может быть IDictionary?) Как это можно сделать, чтобы в моем классе я былпросто получить доступ к общей вещи для извлечения данных, но использовать соответствующий контекст для каждого типа приложения?

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Использование Паттерн с дизайном адаптера .
Пример C # можно найти здесь .

НТН

1 голос
/ 16 июня 2011

Создайте собственную абстракцию вокруг контекста, а затем внедрите конкретную версию в класс в зависимости от среды, например,

interface IContextWrapper
{   
}

class HttpContextWrapper : IContextWrapper
{      
}

class OperationContextWrapper : IContextWrapper
{
}

class UnitTestWrapper : IContextWrapper
{
}

class MyContextUser
{
    private readonly IContextWrapper contextWrapper;

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

Как вы можете видеть, это дает дополнительное преимущество, позволяя сделать вашу единицу класса тестируемой

...