I以下のモデルがあります:カスタマイズのODataのDateTime出力
public class PersonModel {
public int Id {get; set;}
public DateTime BirthDay {get;set;}
....
}
ときのメイクのDateTimeの代わりにのDateTimeOffsetを返すのOData get要求。たとえば、 '/ api/rest/people/1'というリクエストは次の結果を返します。
{
id:1,
birthDay: "12/7/2016 8:57:58 PM +00:00"
....
}
私は何を望みますか?私はちょうど日付値 "12/7/2016"を返す必要があります。私はカスタムODataPayloadValueコンバータを実装しようとしましたが、ODataは 'DateTime'タイプを理解していないようです。
public override object ConvertToPayloadValue(object value, IEdmTypeReference edmTypeReference)
{
/// There isn't a IEdmtypeRefere.IsDateTime
/// Thus OData always think that DateTime is equals to DateTimeOffset
if (value is DateTime)
{
///Do some stuff here.
}
return base.ConvertToPayloadValue(value, edmTypeReference);
}
答えていただきありがとうございますが、このように実装している場合は、モデル内に2つのプロパティ、1つの文字列、もう1つはDateTimeになります。さらに、APIの消費者は、 'strのために生年月日 'となります。私は出力フィルタのようなものを考えていた... – Bruno