wcf - 无法为 DataContract 中的字符串类型获取 minOccurs ="1"maxOccurs ="1"

标签 wcf xml-serialization datacontract

下面是我的 WCF 服务中的 DataContract 及其各自的 xsd 架构,显示在 wsdl 文件中。

[Serializable]
[XmlRoot(Namespace = "http://www.example.com/l0257/services/mgnt/datatypes/0/1",IsNullable = false)]
public partial class InstrumentData
{
    private string _serialNo;
    private string _model;
    private int _pointsRecorded;

    [XmlElement(ElementName = "SerialNo", IsNullable = false)]
    public string SerialNo
    {
        get { return _serialNo; }
        set { _serialNo = value; }
    }

    [XmlElement(ElementName = "Model", IsNullable = false)]
    public string Model
    {
        get { return _model; }
        set { _model = value; }
    }

    [XmlElement(ElementName = "PointsRecorded", IsNullable = false)]
    public int PointsRecorded
    {
        get { return _pointsRecorded; }
        set { _pointsRecorded = value; }
    }
}

WSDl 文件包含相应数据契约(Contract)的以下信息:
 <xs:complexType name="InstrumentData">
 <xs:sequence>
  <xs:element minOccurs="0" maxOccurs="1" name="SerialNo" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="Model" type="xs:string" /> 
  <xs:element minOccurs="1" maxOccurs="1" name="PointsRecorded" type="xs:int" /> 
  </xs:sequence>
  </xs:complexType>

有人可以让我知道我的数据契约(Contract)中缺少什么来获取 Instrumentdata 类的“Model”和“SerialNo”属性的 minOccurs=1 和 maxOccurs=1。

最佳答案

here有关确定 minOccurs 方式的完整说明。似乎对于引用类型,您必须指定 IsNullable=true为了生产minOccurs=1 .

关于wcf - 无法为 DataContract 中的字符串类型获取 minOccurs ="1"maxOccurs ="1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7551418/

相关文章:

c# - 如何使用 WSDL 文件在 Visual Studio.NET 中创建 Web 服务?

wcf - 我可以防止特定数据成员被反序列化吗?

.net - WCF:公开未设置的只读 DataMember 属性?

.net - 将 DataMember 添加到 WCF 中的现有 DataContract

wcf - 如何将 bool 参数传递给一个安静的服务?

c# - 如何通过 WebHttpBinding 接收数组?

multithreading - Silverlight - 一次将应用程序限制为一个 WCF 调用

c# - XML - 将属性反序列化为 Xml 子树

c# - 如何序列化List<IFilter>(诺基亚成像SDK)?

c# - 是否在 Windows Phone 7 中使用 XML 序列化或简单的 LINQ to XML for XML 数据库?