如何为自动生成的WSDL指定'date'数据类型?

时间:2012-09-10 17:28:16

标签: c# asp.net web-services soap

我需要将日期(不是dateTime)传递给Web服务,

我尝试过这样:

[WebMethod]
public void myMethod([XmlElementAttribute(DataType = "date")] DateTime someDate)
{
  // ...
}

但它仍然产生:

<tns:myMethod xsi:type="tns:myMethod">
    <someDate xsi:type="xsd:dateTime">dateTime</someDate>
</tns:myMethod>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在.NET中,甚至System.DateTime.Date也是DateTime数据类型(documentaiton)。在没有.NET时间的情况下,没有“Date”数据类型。

DateTime的日期部分将评估为该日期的午夜,d

DateTime DateOnly = DateTime.Now.Date;
Console.Out.WriteLine(DateOnly.ToString("yyyy-MM-dd hh:mm:ss");

将写出

2012-09-10 00:00:00

在您的代码中,您可以使用上面的代码访问日期,但无论如何,它将是DateTime值。

当然,SOAP编码确实有Date数据类型,但除了DateTime数据类型之外,.NET没有任何东西可以匹配它。

除非您编写自己的数据类型,否则可能会浪费大量时间。