1

このxmlを返すサードパーティのWebサービスがあります

<book>
  <release_date>0000-00-00</release_date>
</book>

私はそれをこのクラスに逆シリアル化しようとしています

public class Book
{
    [XmlElement("release_date")]
    public DateTime ReleaseDate { get; set; }
}

しかし、0000-00-00は有効DateTimeではないため、FormatExceptionが発生します。これを処理するための最良の方法は何ですか?

4

2 に答える 2

4

サードパーティスキーマがそのフィールドを日時として定義している場合、問題が発生しない限り、常に有効な日時値が含まれている必要があります。この場合、文字列として逆シリアル化することを検討してください。

public class Book
{
    [XmlElement("release_date")]
    public string ReleaseDate { get; set; }

    public DateTime? GetReleaseDate 
    { 
      get 
      {
           // parse ReleaseDate datetime string
           // return the value; or null if the string contains invalid datetime.
      }
    }
}
于 2010-03-21T03:03:31.820 に答える
2
public class Book
{
    [XmlElement("release_date")]
    public string StringReleaseDate
    {
        get {return ReleaseDate.ToString("yyyy-MM-dd");}
        set {ReleaseDate = DateTime.ParseExact(value, "yyyy-MM-dd");}
    }

    [XmlIgnore]
    public DateTime ReleaseDate {get;set;}
}
于 2010-03-21T03:08:59.013 に答える