为什么可以';我们在WCF中使用抽象类而不是接口

本文关键字:抽象类 接口 WCF 我们 为什么 | 更新日期: 2023-09-27 17:59:03

在WCF中,为什么我们不能使用抽象类而不是接口作为服务约定,为什么在配置WCF服务时要在endpoint元素中指定约定中的所有服务约定(接口)?请帮忙。

为什么可以';我们在WCF中使用抽象类而不是接口

ServiceContract和OperationContract可以用于抽象类,并且代码将成功编译,因为根据C#编译器,没有任何错误但是托管服务时,ServiceHost将抛出异常,因为根据WCF规则-如果一个类已标记有ServiceContract属性,则另一个类无法从中继承。

最重要的是,它不受支持。您需要使用接口。

这是OOP的基础。如果你使用抽象类,它会编译,但在运行时它会抛出一个异常,说

继承只能在接口类型之间使用。如果一个类标记有ServiceContractAttribute,则另一个服务类不能从中派生

这只有在接口的情况下才有可能。