質問

この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が得られます。これを処理するための最良の方法は何ですか?

役に立ちましたか?

解決

サードパーティのスキーマがそのフィールドをDateTimeとして定義している場合、何か問題が発生しない限り、常に有効なデータタイム値を含める必要があります。この場合、あなたはそれを文字列として脱皮化することを考慮することができます

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.
      }
    }
}

他のヒント

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;}
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top