2009-12-01 3 views
0

나는 다음과 같은 WCF 서비스 호스트 콘솔 응용 프로그램을 한 :지정된 유형의 일반 서비스에 대해 WCF 끝점을 구성하는 방법은 무엇입니까?

<services> 
    <service name="MyNamespace.MyServiceName&lt;int&gt;"> 
    <endpoint 
     address="net.tcp://localhost:8002/MyServiceName" 
     binding="netTcpBinding" 
     contract="MyNamespace.IMyServiceName&lt;int&gt;"/> 
    </service> 
</services> 

을하지만 그것은 작동하지 않습니다

static void Main(string[] args) 
{ 
    ServiceHost serviceHost = 
     new ServiceHost(typeof(MyServiceName<int>)); 
    serviceHost.Open(); 
    Console.ReadLine(); 
} 

나는 그것을 위해 엔드 포인트를 구성하려고 노력했다. &lt;&gt;이 문제입니까?

답변

2

귀하의 계약서는 구체적인 유형이어야합니다. 귀하는 미확인 범용을 사용할 수 없습니다.

WCF는 스트레이트 업 .NET보다 매우 다른 짐승입니다. XML 스키마에서 표현할 수있는 것보다 많은 것을 "줄일"필요가 있기 때문에 대부분의 경우 인터페이스와 제네릭을 사용할 수 없습니다.

구체적인 인터페이스를 만들어 서비스 계약으로 사용해야합니다.

+0

계약도 인터페이스가 될 수 있습니다. 인터페이스는 generic 일 수 있지만 marc_s에서는 구현 클래스가 generic이 될 수 없다고 말합니다. – MattC

+0

@MattC : 제네릭의 "Contract ="가 정상입니까? 나는 놀랍다. 나는 언젠가 그것을 시도해야 할 것이다 :-) –

+0

@marc_s : 아니오. 죄송합니다. 귀하의 의견을 오해했습니다. 나는 당신이 web.config의 값이 아닌 실제 계약을 언급하고 있다고 생각했습니다. – MattC

관련 문제