I understand that I can make the property nullable or use a bool called [PropertyName]Specified to determine whether the property is serialized to XML, but I would like the auto-generated examples to hide these elements in one method’s definition, and show them in another. This way the user knows whether they’ll be there or not.
For example,
here is what displays now (same for both):
Web Service Method1 Example
...
<Object>
<Column Value="int" xsi:nil="true" />
</Object>
...
Web Service Method2 Example
...
<Object>
<Column Value="int" xsi:nil="true" />
</Object>
...
here is what I want to display:
Web Service Method1 Example
...
<Object>
<Column Value="int" />
</Object>
...
Web Service Method2 Example
...
<Object />
...
Is this even possible without creating different Classes?
No, it’s not. You’re serializing instances of classes. This is independent of web methods.
The web service infrastructure doesn’t fit what you’re looking for. In WSDL, an operation uses messages which have parts which are of types which are described in an XML schema. In order for two operations to be the same except for one element (column), they must use messages referring to different types.
Alternatively, you could have one of your methods accept a parameter of a class without the extra column, and have the other use that same parameter, plus a separate parameter which is just the extra column.