В файле разметки WCF Svc я хотел бы использовать универсальный тип в качестве фабрики:
<%@ ServiceHost Language="C#" Debug="true" Factory="MY_GENERIC_TYPE_GOES_HERE" Service="WebSrv.MyService" CodeBehind="MyService.svc.cs" %>
Определение моего универсального класса выглядит следующим образом:
namespace Tools.Services
{
public class ServiceHostFactory<TService> : System.ServiceModel.Activation.ServiceHostFactoryBase
{
//...
}
}
Как я могу сослаться на этот тип с заданным типом в качестве типа шаблона, я имею в виду что-то вроде этого:
Tools.Services.ServiceHostFactory<WebSrv.MyService>
Изучив документацию MSDN Type.GetType, я попробовал следующее с неудачно :
<%@ ServiceHost Language="C#" Debug="true" Service="WebSrv.MyService" Factory="Tools.Services.ServiceHostFactory`1[WebSrv.MyService]" CodeBehind="MyService.svc.cs" %>
Выход:
Ошибка сервера в приложении '/' Описание ошибки синтаксического анализатора: Произошла ошибка при синтаксическом анализе ресурса, необходимого для обслуживания этого запроса. Ознакомьтесь со следующими конкретными сведениями об ошибках синтаксического анализа и соответствующим образом измените исходный файл.
Сообщение об ошибке синтаксического анализатора: тип CLR «Tools.Services.ServiceHostFactory`1[WebSrv.MyService]» не может быть загружен во время компиляции службы. Убедитесь, что этот тип либо определен в исходном файле, расположенном в каталоге \App_Code приложения, либо содержится в скомпилированной сборке, расположенной в каталоге \bin приложения, либо присутствует в сборке, установленной в глобальном кэше сборок. Обратите внимание, что имя типа чувствительно к регистру и что такие каталоги, как \App_Code и \bin, должны располагаться в корневом каталоге приложения и не могут быть вложены в подкаталоги.
Выход:
Ошибка сервера в приложении '/' Не удалось загрузить файл или сборку "Tools.Services" или одну из ее зависимостей. Система не может найти указанный файл.
<%@ ServiceHost Language="C#" Debug="true" Service="WebSrv.MyService" Factory="Tools.Services.ServiceHostFactory`1[WebSrv.MyService,WebSrv ],Tools.Services" CodeBehind="MyService.svc.cs" %>
Выход:
Ошибка сервера в приложении '/' Не удалось загрузить файл или сборку "Tools.Services" или одну из ее зависимостей. Система не может найти указанный файл.
Это вообще возможно достичь в общем виде??