gpt4 book ai didi

c# - 在 WCF 中,有没有办法从 WSDL 中省略/隐藏服务操作或数据成员?

转载 作者:太空狗 更新时间:2023-10-30 00:57:05 25 4
gpt4 key购买 nike

我有一个现有的 WCF 服务。在某些时候,有时数据协定中的 [OperationContract][DataMember] 会变成 [Obsolete]。出于向后兼容的原因,我不想删除该方法。另一个例子是有时我有一个枚举,并且想要[Obsolete]其中一个选择,但我不能完全删除它,因为系统/数据库中已经存在包含该值的项目。

无论如何,有没有办法从生成的 WDSL 中省略某些项目?例如:

[ServiceContract]
public interface IMyService
{
[OperationContract]
string SomeMethod(string x); // I do want this in the WSDL

[Obsolete]
[OperationContract]
string OldMethod(string x); // I do NOT want this in the WSDL, but I do want it to still work / be callable if an older system tries to call it.
}

最佳答案

没有任何开箱即用的东西可用于执行此操作,但您可以使用 WSDL 导出扩展从服务元数据中删除一些操作。我在 http://blogs.msdn.com/b/carlosfigueira/archive/2011/10/06/wcf-extensibility-wsdl-export-extension.aspx 为这个场景实现了一个示例.

关于c# - 在 WCF 中,有没有办法从 WSDL 中省略/隐藏服务操作或数据成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6046844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com