1
我們試圖使用Web服務(Soap)並使用SvcUtil.exe爲該模式生成適配器。我們有場指定模式無效的XmlSerializer
recurrenceCount
不應該被提供,除非它有一個值,所以我們增加了物業
recurrenceCountSpecified
爲根據MSDN。即使recurrenceCountSpecified爲false,字段recurrenceCount屬性仍在傳出xml中指定。
我們做錯了什麼?
適配器代碼:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel","3.0.0.0")] [System.ServiceModel.ServiceContractAttribute(Namespace="http://sas.elluminate.com/", ConfigurationName ="SASDefaultAdapterV2Port")]
public interface SASDefaultAdapterV2Port
{
[System.ServiceModel.OperationContractAttribute(Action="http://sas.elluminate.com/setSession",ReplyAction = "*")]
[System.ServiceModel.FaultContractAttribute(typeof(sas.elluminate.com.ErrorResponse), Action = "http://sas.elluminate.com/setSession", Name="ErrorResponse")]
[System.ServiceModel.XmlSerializerFormatAttribute()]
sessionResponseCollection setSession(setSessionRequest request);
}
修改後的類是:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel","3.0.0.0")]
[System.ServiceModel.MessageContractAttribute(WrapperName="setSession", WrapperNamespace = "http://sas.elluminate.com/",IsWrapped = true)]
public partial class setSessionRequest
{
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool recurrenceCountSpecified;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://sas.elluminate.com/", Order = 19)]
public int recurrenceCount;
}
另請參見問題:http://stackoverflow.com/questions/1009895/svcutil-exe-proxy-generated-not-allowing-for-nullable-fields – dwarring