Asp.net WebService-xsd:Date字段
我正在ASP.NETV3.5中为客户创建Web服务。 目前,我们有一个类似于以下内容的对象,该对象由一个webservice方法返回:Asp.net WebService-xsd:Date字段,asp.net,web-services,soap,xsd,Asp.net,Web Services,Soap,Xsd,我正在ASP.NETV3.5中为客户创建Web服务。 目前,我们有一个类似于以下内容的对象,该对象由一个webservice方法返回: public class blah { public DateTime datetime; public int someData; } 现在,客户向我发送了以下请求: 在模式中,xsd:dateTime只有一个条目。你能 将其拆分为两个字段,一个用于日期,另一个用于时间。这个 使用xsd:date和xsd:time应该可以作为对象类型 显然,我可以如下更
public class blah
{
public DateTime datetime;
public int someData;
}
现在,客户向我发送了以下请求:
在模式中,xsd:dateTime只有一个条目。你能
将其拆分为两个字段,一个用于日期,另一个用于时间。这个
使用xsd:date和xsd:time应该可以作为对象类型
显然,我可以如下更改该类:
public class blah
{
public DateTime date;
public DateTime time;
public int someData;
}
但我假设这将实际生成两个“xsd:DateTime”字段,而不是他请求的每个字段
请告诉我如何实现客户期望的结果?在.NET中没有
时间
对象,这是日期时间
对象的一部分
我会继续使用两个字符串
对象
public class blah
{
public string date;
public string time;
public int someData;
}
然后把它们解析成一个DateTime对象
DateTime dateOut;
if(DateTime.TryParseExact(
string.Format("{0} {1}", date, time),
"yyyy-MM-dd HH:mm",
null,
System.Globalization.DateTimeStyles.None,
out dateOut))
{
// date is valid
}
else
{
// send error back saying that DATE or/and Time needs to follow a pattern
}
要使属性采用您可以装饰的特定类型,请执行以下操作:
public class blah
{
[XmlElement(DataType = "Date")]
public string date;
[XmlElement(DataType = "Time")]
public string time;
public int someData;
}
但是有一些论坛.NET在这方面有一些问题。。。尝试一下,自己测试一下,比如使用Fiddler模拟对您的服务的调用
public class Blah
{
[System.Xml.Serialization.XmlElement(Namespace="http://www.w3.org/2001/XMLSchema", DataType="time")]
public DateTime time;
[System.Xml.Serialization.XmlElement(Namespace="http://www.w3.org/2001/XMLSchema", DataType="time")]
public DateTime date;
public int someData
}
这似乎正是我要找的 但是如何在客户端所需的WDSL/SOAP中提供“xsd:Date”和“xsd:Time”对象类型?NET不输出此类类型。PHP或Java都可以。即使你超控,你也会有麻烦。我知道.Net没有“时间”类型,但必须有一种方法告诉客户端您期望的是“XSD:Time”类型?显然,在内部我们可以把它作为一个字符串。。。