WCF REST API - 是否需要操作合同?

问题描述 投票:1回答:1

我想知道 [业务合同] 属性是必须的吗?我创建了一个新的API端点,但忘了在方法上面指定这个属性,然而,我仍然能够通过Postman成功访问这个端点。我想知道这是否是预期的行为?我记得我读过在 [服务合同] 基本上是 选入,所以这个端点不应该在没有该属性的情况下无法访问吗?

另外,同样的推理是否适用于 [数据合同] 属性?大量的类,会被用来向调用者发送响应,但没有用这个属性来装饰。

wcf wcf-binding wcf-rest
1个回答
0
投票

这与.Net框架有关。如果你使用.Net Framework 3.5,你需要在WCF REST API中添加OperationContract。但如果你使用.Net框架4.0或以上版本,你可以避免添加OperationContract,因为.Netframework 4.0及以后版本的WebInvoke实现了IOperationContractAttributeProvider。

enter image description here

这是.Net框架4.0中的WebInvoke,你可以看到它实现了IOperationContractAttributeProvider。你可以看到它实现了IOperationContractAttributeProvider接口。

enter image description here

这是.Net框架3.5中的WebInvoke。

© www.soinside.com 2019 - 2024. All rights reserved.