在不同的.svc文件中定义不同的接口?

时间:2011-05-02 08:39:43

标签: c# .net wcf

I have two different Interface service that I'm using 
    1. IService1
    2. IService2

I define two files 
    1. IService1.cs   => that hold the Interface of IService1 
    2. IService2.cs   => that hold the Interface of IService2

I also define two different .cvs 
    1. IService1.cvs=> that hold the Interface of IService1 
    2. IService2.cvs=> that hold the Interface of IService2

可以使用这个文件结构或更好的方法将所有合同接口放在一个文件中并拥有一个.cvs文件吗?

2 个答案:

答案 0 :(得分:1)

这取决于。

如果IService1IService2的实施属于同一类:

public class MyService : IService1, IService2
{
  ...
}

然后一个.svc文件,您需要两个端点

如果他们在不同的班级:

public class MyService1 : IService1
{
  ...
}

public class MyService2 : IService2
{
  ...
}

然后两个.svc文件

答案 1 :(得分:1)

是.svc文件。

如果您有两个.svc文件,那么您将展示两个不同的服务(两个类),其中每个服务都有单个端点,自己的WSDL和自己的行为(如安全性,限制等)。

如果您有一个.svc文件,则该服务必须实现两个接口(一个类),并且它将在具有单个服务行为的相同WSDL中描述两个不同的端点。

我将跳过手动修改.svc文件指向同一个类的部分,因为它没有任何实际好处,它会使事情变得更复杂(配置是每个服务类而不是每个.svc文件)。

所以这真的取决于你有什么要求?