Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 防止对象成员出现在web服务的占位符中_C#_Asmx - Fatal编程技术网

C# 防止对象成员出现在web服务的占位符中

C# 防止对象成员出现在web服务的占位符中,c#,asmx,C#,Asmx,我正在编写一个web服务,并传递了一个显示为 <OfferDetail> <OfferID>long</OfferID> <InterestID>long</InterestID> <RangeValue>string</RangeValue> <Score>string</Score> <I

我正在编写一个web服务,并传递了一个显示为

      <OfferDetail>
        <OfferID>long</OfferID>
        <InterestID>long</InterestID>
        <RangeValue>string</RangeValue>
        <Score>string</Score>
        <Importance>string</Importance>
        <Range>string</Range>
        <ImportanceByOtherUser>string</ImportanceByOtherUser>
        <RangeByOtherUser>string</RangeByOtherUser>
      </OfferDetail>

长的
长的
一串
一串
一串
一串
一串
一串
在web服务占位符中,但我不希望

 <ImportanceByOtherUser>string</ImportanceByOtherUser>
 <RangeByOtherUser>string</RangeByOtherUser>
字符串
一串
要去那里,就要有地方持有人。
注意:我无法将它们从对象中删除

如果您使用的是WCF,那么您可能已将
DataContractAttribute
应用于通过服务返回其数据的对象。如果这是一个服务定义(我对此表示怀疑,但您没有发布任何C#代码),那么您需要去掉装饰这些属性的
OperationContractAttribute
。但是我相信是后者而不是前者,所以我会首先查找
DataContractAttribute
s

嗯。

只是想知道为什么

此成员是用于内部web服务使用还是用于私有数据?我有时看到一些开发人员通过web服务直接发布ORM对象。虽然它可以工作,但这通常是一个坏主意,因为您不想公开整个对象,而只想公开对象的子集,甚至是几个对象的组合(例如,客户的主要详细信息+当月的最后订单)

因此,我强烈建议您重构代码。您应该创建一些专用于web服务数据输出的DTO对象,以及用于输入的命令对象


您指定了无法更改对象,但是添加另一层怎么样?

您使用的是哪种类型的Web服务?根据这一点,您可以使用诸如
XmlIgnore
NonSerialized
IgnoreDataMember
等属性

这是一个已知的错误

http://archive.msdn.microsoft.com/WsdlHelpGenerator/Release/ProjectReleases.aspx?ReleaseId=412
下载该文件并在web配置中添加以下内容

    <webServices>
 <wsdlHelpGenerator href="CustomWsdlHelpGenerator.aspx"/>
</webServices>


Href
应该指向项目中下载的文件

您所说的“占位符”到底是什么意思?您是指浏览web服务时获得的帮助页面吗?这是ASMX服务还是WCF服务?@johnsaundersys-dat是吗?ASMX是一项遗留技术,不应用于新的开发。WCF应用于web服务客户端和服务器的所有新开发。一个提示:Microsoft已停用MSDN上的。的可能重复项