gpt4 book ai didi

c# - 为什么 WCF 有时会在生成的代理类型末尾添加 "Field"?

转载 作者:IT王子 更新时间:2023-10-29 04:54:12 24 4
gpt4 key购买 nike

基本上,我有一个带有成员 X 和 Y 的服务器端类型“Foo”。每当我使用 Visual Studio 的“添加服务器引用”时,我都会看到 WSDL 和生成的代理都将“字段”这个词附加到所有成员并更改第一个字母的大小写。 IE,“X”和“Y”被重命名为“xField”和“yField”。知道为什么会这样吗?我无法弄清楚模式。

详细信息——我有一个遗留的 ASMX Web 服务,它公开了一个“Foo”类型。我创建了一个新的 WCF 服务,它是那个旧 Web 服务的包装器——新服务只是包装了那些方法并且可能更新了一些字段的值,但它公开了完全相同的方法并返回完全相同的类型。我曾多次尝试重新创建引用,每次,它总是重命名我的字段:变量“STUFF”在 wsdl 和代理中公开为“sTUFFField”。变量“X”暴露为“xField”等。

有趣的是我无法弄清楚模式——我尝试创建一个新的 ASMX Web 服务作为测试并包装它——然后变量没有重命名。所以我无法弄清楚 WCF 为何/何时重命名变量的模式。

有人知道吗?

最佳答案

我遇到了同样的问题,sergiosp 的回答让我朝着正确的方向前进。只需添加一些额外的信息,希望对其他人有所帮助。

[System.ServiceModel.XmlSerializerFormatAttribute()] 添加到界面,并重新生成客户端代码解决了我的问题。

public interface IMyService
{
[System.ServiceModel.XmlSerializerFormatAttribute()]
[System.ServiceModel.OperationContract]
recordResponse GetRecord(recordRequest request);

}

关于c# - 为什么 WCF 有时会在生成的代理类型末尾添加 "Field"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1164916/

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