Размещен ли IIS Wcf сервис с разрешением сборки? - PullRequest
0 голосов
/ 11 апреля 2011

Можно ли загрузить сборки с помощью события разрешения сборки в wis-сервисе, размещенном на iis.Я не хочу загружать сборки через GAC или папку bin.Является ли это возможным?спасибо.

1 Ответ

0 голосов
/ 11 апреля 2011

Я не думаю, что вы можете использовать событие AppDomain.AssemblyResolve, но вы можете попробовать с использованием MEF для разрешения фактической реализации с использованием DirectoryCatalog .

Таким образом, ваш код SVC позади (или вы можете удалить код позади и указать свой SVC на класс в отдельной сборке) будет выглядеть примерно так (непроверено). Я не пробовал этот конкретный метод, но не вижу причин, по которым он не будет работать.

public class YourServiceClass : YourServiceContract
{
    [Import]
    private IContract Implementation { get; set; }

    private DirectoryCatalog _directoryCatalog = null;
    private CompositionContainer _container = null;

    public YourServiceClass()
    {
        _directoryCatalog = new DirectoryCatalog(YourDirectoryPathHere);
        _container = new CompositionContainer(_directoryCatalog);
        _container.ComposeParts(this);
    }

    //Operation
    public void DoSomething()
    {
        Implementation.DoSomething();
    }
}

Вы также можете переместить код MEF в базовый класс, если это имеет смысл. Если вы новичок в MEF, вот учебник по использованию MEF с каталогом каталогов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...