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'또는 해당 종속성 중 하나를로드 할 수 없습니다. 시스템이 지정된 파일을 찾을 수 없습니다.
이것은 일반적인 방법으로 달성하는 것이 가능합니까?
방금 답을 찾았습니다 . 여기서 이중 괄호
를 사용해야 했습니다. 그리고 두 개의 서로 다른 어셈블리의 두 가지 유형 이 관련 되었기 때문에 다음과 같은 방법으로 각각을 정규화해야했습니다.
Tools.Services.ServiceHostFactory`1[[WebSrv.MyService, WebSrv]], Tools.Services
이것이 누군가를 도울 수 있기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다