Class HttpServiceWrapperFactory
Предоставляет интерфейс для создания типизированных декораторов для экземпляров IHttpService.
Inheritance
Namespace:InfinniPlatform.DocumentStorage
Assembly:InfinniPlatform.DocumentStorage.HttpService.dll
Syntax
public class HttpServiceWrapperFactory : object, IHttpServiceWrapperFactory
Remarks
В текущей реализации хостинг IHttpService выполнен на базе функционала NancyFx, который требует, чтобы каждый сервис имел уникальный CLR-тип. Тем не менее, на уровне прикладной разработки часто возникает необходимость создания однотипных сервисов. Вариант решения с автоматической генерацией кода сервисов был отклонен, так как это усложняет процесс прикладной разработки, неадекватно увеличивает кодовую базу, требует поддержки ее в актуальном состоянии. И все эти сложности только из-за текущей реализации механизма хостинга сервисов. Поэтому был рассмотрен вариант автоматической генерации типизированных декораторов для экземпляров IHttpService. Для каждого экземпляра IHttpService создается декоратор с уникальным CLR-типом, который скрывает обращение к реальному экземпляру. Это решение оставляет все неудобства на уровне реализации и предоставляет на прикладном уровне простую и удобную в использовании абстракцию. Генерация типов делается с использованием классов из пространства "System.Reflection.Emit", поскольку это самый быстрый и не требующий дополнительных установок способ генерации типов (по сравнению с CSharpCodeProvider). При написании кода был использован плагин "Reflector.ReflectionEmitLanguage".
Constructors
| Improve this Doc View SourceHttpServiceWrapperFactory()
Declaration
public HttpServiceWrapperFactory()
Methods
| Improve this Doc View SourceCreateServiceWrapper(String, IHttpService)
Создать типизированный декоратор для экземпляра IHttpService.
Declaration
public IHttpService CreateServiceWrapper(string httpServiceWrapperTypeName, IHttpService httpService)
Parameters
Type | Name | Description |
---|---|---|
System.String | httpServiceWrapperTypeName | |
IHttpService | httpService |
Returns
Type | Description |
---|---|
IHttpService |