Работаем над получением DateTimes для любого часового пояса. Я использую DateTimeOffset, строку и атрибут XmlElement. Когда я это сделаю, я получаю следующую ошибку:
[InvalidOperationException: dateTime - недопустимое значение для свойства XmlElementAttribute.DataType. dateTime не может быть преобразован в System.String.]
System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping (модель TypeModel, String ns, контекст ImportContext, String dataType, XmlAttributes a, Boolean Repeats, Boolean openModel, RecursionLimiter limiter) +450[InvalidOperationException: произошла ошибка, отражающая тип System.String.]
System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping (модель TypeModel, String ns, контекст ImportContext, String dataType, XmlAttributes a, Boolean Repeats, Boolean openModel, Ограничитель RecursionLimiter) +1621
System.Xml.Serialization.XmlReflectionImporter.ImportAccessorMapping (средство доступа MemberMapping, модель FieldModel, XmlAttributes a, String ns, Type selectionIdentifierType, Boolean rpc, Boolean openModel, RecursionXml50
.Serialization.XmlReflectionImporter.ImportFieldMapping (родительский элемент StructModel, модель FieldModel, XmlAttributes a, String ns, ограничитель RecursionLimiter) +139
System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers, StringMapping тип open, StructMapping модели ограничитель) +1273[InvalidOperationException: произошла ошибка, отражающая свойство creationTimeX.] ...
Код:
[System.Xml.Serialization.XmlElement(ElementName = "creationTime",
DataType="dateTime")]
public string creationTimeX
{
get
{
return this.creationTimeField.ToString("yyyy-MM-ddTHH:mm:sszzz");
}
set
{
DateTimeOffset.TryParse(value, out this.creationTimeField);
}
}
[System.Xml.Serialization.XmlIgnoreAttribute()]
public System.DateTimeOffset creationTime
{
get {
return this.creationTimeField;
}
set {
this.creationTimeField = value;
}
}
DateTimeOffset
. При использовании сериализации WCF возникают некоторые проблемыDateTimeOffset
. - person Dmitrii Lobanov   schedule 21.02.2012