如果我有以下簡單的類:有什麼辦法來控制ASMX Web服務中float/double的格式?
[Serializable]
public class Test
{
public double a = 0.0000001;
}
當我返回此類型從.NET ASMX Web服務的對象時,響應將是:
<Test>
<a>1E-07</a>
</Test>
是,也許不是巧合的是,默認行爲0.0000001.ToString()
,儘管至少有ToString
,我可以指定格式參數(在這種情況下,我不需要想要指數表示法。事實上,我甚至不知道如何將它鉤入我曾經有過XmlSerializer
完全控制它,更不用說我可以放在返回對象上的屬性。
編輯:我仍然非常想保留屬性,我實際上將它應用於強類型。在.NET中,0.0000001和1E-7都是有效的雙重表示,我只是想讓它通過網絡發送內容。
如果此值根據模式進行驗證,那麼爲什麼您的客戶會關心?他們肯定會消耗任何驗證的值?如果他們不能,那麼你需要改變模式來匹配他們可以處理的內容。 – 2011-03-03 23:15:57
商業用戶與開發人員。除了WS端點之外,我們還有將數據轉儲到CSV文件等的工具。兩者的需求通常沒有太大的脫節,但我試圖將視覺美學與發展實用主義相協調。 – 2011-03-03 23:25:46
「.NET中0.0000001和1E-7都是有效的雙重表示」 - 但對於WS來說,重要的是要有一個有效的xs:double表示。 – Joe 2011-03-04 08:31:27