0
オブジェクトをシリアル化して文字列値を照会するとき、Flurlのデフォルトの動作をオーバーライドするにはどうすればよいですか?例えば。以下のコードFlurl(Fluent Url)カスタムシリアル化
DateTime date = new DateTime(2017, 1, 2, 3, 4, 5);
Url url = "http://domain.com".SetQueryParam("date", date);
は、次のURLを生成します。
http://domain.com?date=01%2F02%2F2017%2003%3A04%3A05
私がしたいことはこれです:
次のように日付をシリアル化した結果だろうhttp://domain.com?date=2017-01-02T03%3A04%3A05.0000000
date.ToString("O")
をおかげで@Tod、それはFlurlがSを定義することはできません残念ですさまざまなタイプの消去ルール。さらに厄介なのは、日付のシリアライゼーションはスレッドの現在のカルチャを尊重するものではなく、m/d/yとしてハードコードされているということです。なぜ私が達成しようとしていた正式なy-m-d形式ではないでしょうか?クエリ文字列中の日付を、例えばサーバー上で実行しているサーバーに送信するとオーストラリアの地域設定では、それをd/m/yとして解釈しようとし、私の日付の半分が間違って出てくるでしょう。今のところ私はFlurlを使わないことにして、自分のクエリ文字列ビルダーを書いた。 – Andrew
@Andrewここではいくつかの点であなたの判断を質問する。まず、誰も今までに求めていない機能が存在しないということは、恥ずべきことではありません。ここで不平を言う前にGitHubで提案をロギングするかPRを提出することを検討しましたか?第二に、私はあなたがFlurlでしたいことをするための2つの非常に簡単で、簡単な解決策を提案しました。あなたがそれらを読んで理解していて、それを捨てて自分のビルダーを書くことが最善の選択肢であると結論づけたら、私はあなたの思考プロセスに従わないことを恐れています。 –
@@ Todd申し訳ありませんが、私はあなたがFlurlの作者であることを気付かず、私のコメントを個人的に受け入れるかもしれません。私は一般的にコンポーネントを批判していない、私はそれが素晴らしいと思うし、私はこの動作を発見するまで、それを使用するためのすべての意思を持っていた。あなたが提案したソリューションは私にとってはうまくいかないでしょう。あなたはあなたが「私の思考プロセスに従わない」と言っていますが、私の正確な要件はわかりません。私は率直にも、曖昧さのないy-m-dを使用するのではなく、日付のシリアライズをm/d/yとしてハードコードすることに決めたときに、あなたの思考プロセスに従わない。説明していただけますか? – Andrew