0
當序列化對象以查詢字符串值時,如何覆蓋Flurl的默認行爲?例如。下面的代碼Flurl(Fluent Url)自定義序列化
DateTime date = new DateTime(2017, 1, 2, 3, 4, 5);
Url url = "http://domain.com".SetQueryParam("date", date);
產生以下網址:
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不允許定義小號各種類型的序列化規則。更令人討厭的是,日期序列化甚至不尊重線程的當前文化,並被硬編碼爲m/d/y。爲什麼不是規範的y-m-d格式,這正是我試圖實現的目標?如果我將查詢字符串中的日期發送到正在運行的服務器上。澳大利亞的區域設置,它會嘗試將其解釋爲d/m/y,並且我的一半日期會出錯。現在我決定不使用Flurl並編寫我自己的查詢字符串構建器... – Andrew
@Andrew我在這裏以幾個方面質疑您的判斷。首先,我根本不覺得這個功能根本不存在,至今沒有人提出要求。在抱怨之前,您是否考慮在GitHub上記錄建議或提交PR?其次,我提出了兩個非常簡單,直接的解決方案,用Flurl來做你想要的。如果你閱讀並理解他們,並且仍然認爲放棄它並編寫自己的建築師是你的最佳選擇,那麼恐怕我不會遵循你的思維過程。 –
@@ Todd對不起,我沒有意識到你是Flurl的作者,可能會親自發表我的評論。我並不是批評這個組件,我認爲這很棒,我有所有的意圖去使用它,直到我發現這種行爲。你提出的解決方案不適合我。你說你「不要按照我的思維過程」,但你不知道我的確切要求。坦率地說,當您決定將日期序列化硬編碼爲m/d/y而不是使用明確的y-m-d時,我也不會遵循您的思考過程。你能解釋一下嗎? – Andrew