C# 如何为具有指定类型的通用服务配置WCF端点?
我有以下WCF服务主机控制台应用程序:C# 如何为具有指定类型的通用服务配置WCF端点?,c#,.net,wcf,generics,C#,.net,Wcf,Generics,我有以下WCF服务主机控制台应用程序: static void Main(string[] args) { ServiceHost serviceHost = new ServiceHost(typeof(MyServiceName<int>)); serviceHost.Open(); Console.ReadLine(); } static void Main(字符串[]args) { 服务主机服务主机= 新的ServiceHost(typ
static void Main(string[] args)
{
ServiceHost serviceHost =
new ServiceHost(typeof(MyServiceName<int>));
serviceHost.Open();
Console.ReadLine();
}
static void Main(字符串[]args)
{
服务主机服务主机=
新的ServiceHost(typeof(MyServiceName));
Open();
Console.ReadLine();
}
我尝试为其配置端点:
<services>
<service name="MyNamespace.MyServiceName<int>">
<endpoint
address="net.tcp://localhost:8002/MyServiceName"
binding="netTcpBinding"
contract="MyNamespace.IMyServiceName<int>"/>
</service>
</services>
但它不起作用。问题出在
和
上吗?您的合同必须是一种具体类型-抱歉,您不能在这方面使用泛型
WCF与straight up.NET是一个非常不同的野兽,因为很多东西需要“简化”到XML模式可以表达的程度,所以不能使用接口(大部分情况下)和泛型
您必须创建具体的接口,并将其用作服务合同。合同也可以是一个接口。接口可以是泛型的,但正如marc_所说,实现类不能是泛型的。@MattC:那么“Contract=”和泛型的关系就可以了?我很惊讶。。。。。总有一天我会试试的:-)@marc_s:不,对不起,我误解了你的评论。我以为你指的是实际合同,而不是web.config中的价值。@marc_请看,那个人是在暗示这是可能的。但是在序列化和反序列化时,我不知道这样做的后果。你对此有什么想法?