2011-10-30 15 views
2

我正在試驗ServiceStack的JSON引擎。我抓住了MonoTouch二進制版本v2.20。從模擬器中工作正常,但從iOS設備(iPad2,iOS5),我得到了JsonWriter的類型初始值設定項引發的異常(除此之外沒什麼)。我正在使用MonoTouch 5,MonoDevelop 2.8.1和針對iOS 5.我禁用了庫鏈接,因爲啓用時出現錯誤。在MonoTouch上使用ServiceStack JSON序列化出錯

我創建了一個樣本並上傳到https://github.com/t9mike/ServiceStack-JSON1

我想確定問題是我的編譯選項,服務堆棧還是MonoTouch。提前致謝。

+0

當我在** Debug | IPhoneSimulator **上嘗試您的示例時,反序列化時出現'TypeLoadException'(在'S.R.E.DynamicMethod'上)。你確定當前的代碼(git)適合你嗎? – poupou

+0

我剛剛克隆了樣本庫,打開了解決方案,運行良好。我的目標是iPad 5.0模擬器。 MonoDevelop 2.8。1所 生成信息: \t推出ID:20801000 \t GIT中修訂:2d2d49a29b8c7865f8be96c24ae3cb0580fa337d \t構建日期:2011-10-12 17:18:49 + 0000 操作系統: \t的Mac OS X 10.6.8 \t達爾文MacBook1 10.8.0達爾文內核版本10.8.0:星期二6月16日16:32:41 PDT 2011;根:XNU-1504.15.3〜1/RELEASE_X86_64 x86_64的 運行時間: \t單聲道2.10.6(壓縮包星期五09月16零點13分06秒EDT 2011) \t GTK 2.24.5(GTK#2.12.0.0) 蘋果開發工具: \t Xcode 4.2(828) \t Build 4C199 Monotouch:5.0 – t9mike

回答

0

我最終從GitHub 3.0.3版抓取了ServiceStack.Text sources。我創建了一個新的MonoTouch庫項目。我不得不稍微調整ServiceStack.Text/JsConfig.cs以使System.Drawing.Color位有條件。我會給作者發一個補丁和MT csproj。

使用這個新程序集後,我的示例MT應用程序在設備上運行良好。我用新的ServiceStack.Text dll更新了我的示例https://github.com/t9mike/ServiceStack-JSON1

+0

我在MonoTouch上運行的ServiceStack.Text 3.x的fork在https://github.com/t9mike/ServiceStack.Text。我向ServiceStack開發人員打開了一個請求。 – t9mike

1

快速部分答案,這可能有助於:

我有殘疾庫鏈接,因爲啓用時,我得到一個錯誤。

電流(5.0)管理接頭可以消除一些未使用的(從一個靜態分析點)碼從應用程序。這通常發生在使用鏈接全部選項,即用戶代碼被鏈接器處理的情況下。

一種替代方法是使用鏈接SDK程序集只有不會觸及用戶代碼(只有鏈接程序會處理MonoTouch本身附帶的代碼)。

另一種替代方法是在代碼中添加[Preserve]屬性,以確保在鏈接器處理完代碼後仍然符合序列化器的要求。有關鏈接器和[Preserve]屬性的更多信息可以在here找到。

next(5.2)MonoTouch的發佈將在鏈接器中包含更復雜的步驟,以確保基本XML序列化和DataContract要求不被破壞。不知道這是否會解決這個特定的情況(ServiceStack JSON),但我會看看它。

至於你的問題的其餘部分,我會嘗試自己建立這個,並複製你的問題。

+0

非常有用!非常感謝,男人! – sprinter252

相關問題