2011-04-01 35 views
1

我在序列化/反序列化期間遇到問題。單聲道:DateTime序列化和十進制序列化錯誤

我正在使用WCF服務(使用.NET框架)和在Mono中創建的客戶端。

客戶端調用服務,它收到DateTime對象。這是錯誤:

Exception in async operation: System.ArgumentOutOfRangeException: Value -8588999498056367604 is outside the valid range [0,3155378975999999999]. 
Parameter name: ticks 

其他問題如下。

客戶端調用其他服務並檢索十進制值。當我運行了電話,客戶端崩潰和火災此異常:

System.NotImplementedException: ValueType 148 on node Text 
    at System.Xml.XmlBinaryDictionaryReader+NodeInfo.get_Value() [0x001e8] in /Developer/MonoTouch/Source/mono/mcs/class/System.Runtime.Serialization/System.Xml/XmlBinaryDictionaryReader.cs:191 

怎麼可能解決這些問題?謝謝。

+0

這將有助於知道您正在使用哪個版本的Mono – TheNextman 2011-04-04 14:50:04

+0

感謝您的回覆。我如何檢索單聲道版本? – 2011-04-05 07:50:32

+0

運行「mono -v」... – TheNextman 2011-04-05 12:42:40

回答

2

爲了您的第一個問題,檢查這個帖子:

http://lists.ximian.com/pipermail/mono-bugs/2010-December/107338.html

什麼樣的DateTime?如果是Utc或Local,請嘗試使用DateTimeKind.Unspecified發送DateTime並查看是否有同樣的問題。如果是這樣,我認爲你正在碰撞這個bug:https://bugzilla.novell.com/show_bug.cgi?id=660424

你可以測試當前的單聲道主機是否存在相同的問題。另一個解決方法是隻需將DateTime發送一次,然後在客戶端重新構建它。

你的第二個問題我不太確定:堆棧似乎引用了MonoTouch?你在iPhone上運行這個嗎?完整的代碼示例在這裏會有所幫助。

+0

非常感謝。是的,我在Ipad上運行Monotouch ... – 2011-04-05 19:24:55

+0

在這種情況下,您的WCF服務如何暴露?我可能會建議您嘗試使用傳統的Web服務堆棧調用它。 MonoTouch仍然基於Mono 2.6,其中WCF實現不太成熟。 – TheNextman 2011-04-05 19:29:56

+0

感謝您的合作......您的意思是「您的WCF服務如何暴露」?我使用VS(slutil.exe)創建的svc文件,並導入到我的Monotouch項目中...也許傳統的Web服務堆棧更復雜... – 2011-04-05 20:31:53