C# 如何指定';日期';自动生成的WSDL的数据类型?

C# 如何指定';日期';自动生成的WSDL的数据类型?,c#,asp.net,web-services,soap,C#,Asp.net,Web Services,Soap,我需要将日期(而不是日期时间)传递给web服务 我试着这样做: [WebMethod] public void myMethod([XmlElementAttribute(DataType = "date")] DateTime someDate) { // ... } 但它仍然产生: <tns:myMethod xsi:type="tns:myMethod"> <someDate xsi:type="xsd:dateTime">dateTime</s

我需要将日期(而不是日期时间)传递给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>

日期时间

有什么想法吗?

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

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编码确实有一个日期数据类型,但是.NET除了DateTime数据类型之外,没有任何东西可以与之匹配


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

我不是在寻找Date.Net类,我只需要web服务的客户端知道他们应该提供日期(yyy-MM-dd)而不是日期时间(yyy-MM-dd hh:MM:ss)。我理解这一点。我要告诉你的是,只要你使用自动生成的wsdl,你就不能这么做。运行时将其转换为日期时间。