如何在Web服务(ASP.Net)中创建特定于XmlIgnore属性的方法?

时间:2009-07-01 14:59:30

标签: asp.net web-services xml-serialization

我知道我可以使属性可以为空或者使用名为[PropertyName] Specified的bool来确定属性是否被序列化为XML,但我希望自动生成的示例在一个方法的定义中隐藏这些元素,并且把它们展示在另一个这样,用户就知道他们是否会在那里。

例如,

现在显示的内容(两者都相同):

Web服务方法1示例

...
<Object>
    <Column Value="int" xsi:nil="true" />
</Object>
...

Web服务方法2示例

...
<Object>
    <Column Value="int" xsi:nil="true" />
</Object>
...

这是我想要显示的内容:

Web服务方法1示例

...
<Object>
    <Column Value="int" />
</Object>
...

Web服务方法2示例

...
<Object />
...

这是否可以在不创建不同类的情况下实现?

2 个答案:

答案 0 :(得分:0)

不,不是。您正在序列化类的实例。这与网络方法无关。


Web服务基础架构不适合您所需的内容。在WSDL中,操作使用消息,其中 。除了一个元素(列)之外,为了使两个操作相同,它们必须使用引用不同类型的消息。

或者,你可以让你的一个方法接受一个没有额外列的类的参数,让另一个使用相同的参数,加上一个单独的参数,它只是额外的列。

答案 1 :(得分:0)

然后,最好的方法就是让一个类继承另一个类并添加Column属性。