我目前正在从SoapUI发送测试以下请求:
<caja:GenerarObligacion>
<caja:Obligacion>
<obl:BenCheq>TALLERES ARROYO</obl:BenCheq>
<obl:CodMoneda>S/.</obl:CodMoneda>
<obl:CodProd>VM14</obl:CodProd>
<obl:CodRamo>AUTO</obl:CodRamo>
<obl:CodUsuario>ACSELP</obl:CodUsuario>
<obl:DptoEmi>000101</obl:DptoEmi>
<obl:FecFinVig>2024-02-28T12:00:01</obl:FecFinVig>
<obl:FecIniVig>2025-02-28T12:00:01</obl:FecIniVig>
<obl:FecMod>2026-07-17T13:02:05</obl:FecMod>
<obl:FecNotif>2026-07-17T13:02:05</obl:FecNotif>
<obl:FecOcurr>2025-01-28T08:41:53</obl:FecOcurr>
<obl:FecRecepDocPago>2025-01-28T00:00:00</obl:FecRecepDocPago>
<obl:IdePol>25000293961</obl:IdePol>
<obl:IdeSin>1500013900</obl:IdeSin>
<obl:IndCheque>S</obl:IndCheque>
<obl:ItemOblig>
<fac:BEDetalleObligacion>
<fac:CodCpto>DSCTOS</fac:CodCpto>
<fac:ItemDoc/>
<fac:FecFact>2025-01-28T00:00:00</fac:FecFact>
<fac:MtoCptoEgre>600.0</fac:MtoCptoEgre>
<fac:NroFact>444444444</fac:NroFact>
<fac:NumCpto>1</fac:NumCpto>
<fac:SerieFact>f045</fac:SerieFact>
<fac:TipoRegCompra>01</fac:TipoRegCompra>
</fac:BEDetalleObligacion>
<fac:BEDetalleObligacion>
<fac:CodCpto>ISLV</fac:CodCpto>
<fac:ItemDoc/>
<fac:FecFact>2025-01-28T00:00:00</fac:FecFact>
<fac:MtoCptoEgre>108.0</fac:MtoCptoEgre>
<fac:NroFact>444444444</fac:NroFact>
<fac:NumCpto>2</fac:NumCpto>
<fac:SerieFact>f045</fac:SerieFact>
<fac:TipoRegCompra>01</fac:TipoRegCompra>
</fac:BEDetalleObligacion>
</obl:ItemOblig>
<obl:MtoAprob>708.0</obl:MtoAprob>
<obl:NumAprob>18000493</obl:NumAprob>
<obl:NumPol>2500029396</obl:NumPol>
<obl:StsOblig>VAL</obl:StsOblig>
<obl:StsSin>ACT</obl:StsSin>
<obl:TasaCambio>1.0</obl:TasaCambio>
<obl:TipoAprob>P</obl:TipoAprob>
<obl:TipoBenef>TALR</obl:TipoBenef>
<obl:TipoDocPago>CHQ</obl:TipoDocPago>
</caja:Obligacion>
<caja:Tercero>
<ter:BETercero>
<ter:NumId>650606871</ter:NumId>
<ter:TipoId>J</ter:TipoId>
</ter:BETercero>
</caja:Tercero>
</caja:GenerarObligacion>
所有数据都很好地到达,除了“FecFact”字段,如请求此字段中所示,如果它有一个日期,但是当到达可视调试时,显示以下值“01/01/0001”:
尽管向FecFact字段发送了一个值,但它设置的日期显示在图像“01/01/0001”中,就好像字段到达为空。这是我的实体的声明。
[DataMember]
public String CodCtpo { get; set; }
[DataMember]
public DateTime FecFact { get; set; }
[DataMember] //IndIGV
public String IndnoGravado { get; set; }
[DataMember] //MtoCptoAprob
public Decimal MtoCptoEgre { get; set; }
[DataMember] // NumCpto - ?uso? NUMDETOBLIG
public Int32 NumCpto { get; set; }
[DataMember]
public String NroFact { get; set; }
[DataMember]
public String SerieFact { get; set; }
[DataMember]
public String TipoRegCompra { get; set; } //Funcional como OB
[DataMember]
public String CodSvcio { get; set; }
DateTime
默认由DateTime.MinValue
初始化,实际上1/1/0001 12:00:00 AM
与你得到的完全相同。
你应该声明可空字段,如果想要null日期,如:
DateTime? dt = null;
要么
将DateTime
变量与DateTime.MinValue进行比较,并将数据库查询中的相应值设置为null,或将UI变量中的相应值设置为null。
根据您的描述,我已成功恢复您的问题,您唯一需要做的是尝试将NameSpace属性分配给DataContract类。
[DataContract(Namespace ="mydomain")]
public class Product
{
[DataMember]
public int ID { get; set; }
[DataMember]
public DateTime dateTime { get; set; }
}
我希望这些信息有用。