未添加 WCF 服务数据协定最后一个属性

本文关键字:最后一个 属性 数据 添加 WCF 服务 | 更新日期: 2023-09-27 18:34:37

我正在用枚举向我的模型添加一个属性。

public class ChildCareCentreEntryReservation : BasketItem, ILockableBasketItem
{
      ....
    [DataMember]
    public ChildCareCentreEntryReservationStatusTypes ChildCareCentreEntryReservationStatusType { get; set; }
}
[DataContract(Namespace = Constants.Namespace)]
public enum ChildCareCentreEntryReservationStatusTypes
{
    [EnumMember]
    VoorlopigIngeschreven = 0,
    [EnumMember]
    DefinitiefIngeschreven = 1,
    [EnumMember]
    Geannuleerd = 2
}

在我的表单中,我创建了一个托儿中心入口预订对象:

  var reservation = new ChildCareCentreEntryReservation();
  reservation.ChildCareEntryPeriodId = _entryPeriod.Id;
  reservation.ChildCareCentreId = _centre.Id;
  reservation.PersonId = _person.Id;
  reservation.Comment = txtComment.Text;
  reservation.ChildCareCentreEntryReservationStatusType = (ChildCareCentreEntryReservationStatusTypes)cboStatusName.SelectedIndex;

我将 ChildCareCentreEntryReservation 对象添加到列表中:

var basketItems = new List<BasketItem> { reservation };

然后,我通过调用函数 LockBasketItems 向服务发送一个数组:

 LockBasketResult lockBasketResult = Service.LockBasketItems(basketItems.ToArray(), Context);

一切都可以正常生成和工作,但我的服务没有收到我上次添加的属性。

提琴手检查员结果(客户端服务请求(:

  <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<BasketItems xmlns="http://www./">
  <BasketItem xsi:type="ChildCareCentreEntryReservation">
    <RuleNamesToIgnore xsi:nil="true"/>
    <ChildCareEntryPeriodId>13ccefb3-f1e4-4f64-8fb8-b07cf30d2fca</ChildCareEntryPeriodId>
    <ChildCareCentreId>8cc85f37-da5d-46c5-9bb4-d6efa8448176</ChildCareCentreId>
    <PersonId>56e341bb-ac05-40dc-a39a-082ae4ff087e</PersonId>
    <ChildCareCentrePeriodIds>
      <guid xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">61c43967-8781-4d83-a117-963c5734491f</guid>
    </ChildCareCentrePeriodIds>
    <LockTicket xsi:nil="true"/>
    <Comment/>
    <PeriodOptions xsi:nil="true"/>
  </BasketItem>
</BasketItems>
<Context xmlns="http://www./">
  <Language>NL</Language>
  <ShopId>00000000-0000-0000-0000-000000000550</ShopId>
  <SessionId>de824345-14f3-44c7-99fd-f9a073e9b51b</SessionId>
</Context>

提琴手检查员结果(对客户端的服务响应(:

  <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
  <ActivityId CorrelationId="d1daee11-20e2-4e98-8774-9bffe4e2e4f3" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">728e68a9-17ff-44a0-b4ad-f455f403be5e</ActivityId>
    </s:Header>
    <s:Body>
      <LockBasketResult xmlns="http://www./" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <BasketItems>
    <BasketItem i:type="ChildCareCentreEntryReservation">
      <DivisionId>00000000-0000-0000-0000-000000000000</DivisionId>
      <Id>00000000-0000-0000-0000-000000000000</Id>
      <Quantity>1</Quantity>
      <RuleNamesToIgnore xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
      <UnitPrice>0</UnitPrice>
      <ChildCareEntryPeriodId>13ccefb3-f1e4-4f64-8fb8-b07cf30d2fca</ChildCareEntryPeriodId>
      <ChildCareCentreId>8cc85f37-da5d-46c5-9bb4-d6efa8448176</ChildCareCentreId>
      <PersonId>56e341bb-ac05-40dc-a39a-082ae4ff087e</PersonId>
      <ChildCareCentrePeriodIds xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <a:guid>61c43967-8781-4d83-a117-963c5734491f</a:guid>
      </ChildCareCentrePeriodIds>
      <LockTicket i:type="ChildCareCentreEntryReservationLockTicket">
        <ExpirationTime>2013-10-08T17:27:06</ExpirationTime>
        <Id>13a984f8-5d97-4f87-aa52-7523849cc6f5</Id>
      </LockTicket>
      <Comment/>
      <PeriodOptions xmlns:a="http://schemas.datacontract.org/"/>
      <ChildCareCentreEntryReservationStatusType>VoorlopigIngeschreven</ChildCareCentreEntryReservationStatusType>
    </BasketItem>
  </BasketItems>
  <IsLocked>true</IsLocked>
  <ValidationResult i:nil="true"/>
</LockBasketResult>

在我的参考中.cs我看到该属性已正确添加。

知道我错过了什么吗?

我正在使用 ASP.NET

溶液

我必须将托儿中心入口预订状态类型指定设置为 true

 reservation.ChildCareCentreEntryReservationStatusTypeSpecified = true;

未添加 WCF 服务数据协定最后一个属性

已解决

我必须将托儿中心入口预订状态类型指定设置为 true

reservation.ChildCareCentreEntryReservationStatusTypeSpecified = true;