在WCF中,为什么我们不能使用抽象类而不是接口作为服务契约?为什么我们应该在配置WCF服务时在端点元素中指定合同中的所有服务契约(接口)?请帮忙。
答案 0 :(得分:4)
ServiceContract和OperationContract可用于抽象类,代码将成功编译,因为根据C#编译器没有任何错误。 然而托管服务时,ServiceHost 将抛出异常,因为根据WCF规则 - 如果某个类已使用ServiceContract属性标记,则另一个类无法从中继承。
底线 - 不支持。您需要使用接口。
答案 1 :(得分:2)
这是OOP的基础。如果您使用抽象类,它将编译,但在运行时它将抛出一个异常说
继承只能在接口类型中使用。如果一个类用ServiceContractAttribute标记,那么另一个服务类不能从它派生
只有在接口的情况下才有可能。