这是我在接受采访时提出的一个问题。
创建WCF服务时,会得到两个文件; “IService.cs”和“Service.cs”。为什么它是实现接口的类而不是继承抽象类的类。不回复说你不能在抽象类上放置[servicecontract]属性。我知道你只能将它应用于接口,但为什么呢?
答案 0 :(得分:6)
可以实现多个接口。一个人只能继承一个抽象类。
答案 1 :(得分:6)
如果您将服务的实现指定为将客户端与服务紧密耦合的服务,则WCF会将客户端与服务完全分离。
答案 2 :(得分:1)
我能想到的几个原因:
[ServiceContract]
没有实现,为什么要浪费你拥有的一个继承槽?例如,除了实现ServiceBase
接口之外,我们所有的服务类都继承自提供公共上下文状态和方法的抽象[ServiceContract]
类。但是,即使不是这种情况,我仍然可以将基类槽留空以备将来使用。[ServiceContract]
。[ServiceContract]
,那么将服务类添加到同一个继承树将会毁掉它。