2016-04-22 7 views
0

私のWebサービスからモノタッチ(ios)のデータを取得しようとしています。私は、プロキシクラスからgeneeratedクラスでGetDataCompletedEventArgsメソッドにアクセスしようとすると、それはで例外をスローしてIXmlSerializable Type 'System.Xml.Linq.XElement'にはデフォルトコンストラクタが必要です

void OnGotResult(object sender, GetDataCompletedEventArgs e) 
{ 
    resultsLabel.Text = e.Result.ToString(); 
} 

この

のように私は私のプロキシクラスからメソッドにアクセスしようとしています、SlSvcUtilを使用してプロキシクラスを作成しますメッセージ

System.Runtime.Serialization.InvalidDataContractException:IXmlSerializableタイプ 'System.Xml.Linq.XElementは、' デフォルトコンストラクタを持っている必要があります。

スタック例外のトレース:

System.Runtime.Serialization.XmlDataContractInterpreter.GetConstructorで()[0x00059]で/ユーザ/ビルダー/データ/レーン/ 73229919分の2377 /ソース/ maccore/_build /ライブラリ/ System.Runtime.Serialization.XmlDataContractInterpreter.CreateXmlSerializable()[0x00025]のSystem.Runtime.Serialization/ReferenceSources/XmlDataContract_static.cs:49 で、フレームワーク/ Xamarin.iOS.framework/Versions/git/src/mono/mcs//Users/builder/data/lanes/2377/73229919/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/System.Runtime.Serialization/ReferenceSources/XmlDataContract_static .cs:34 at System.Runtime.Serialization.XmlDataContract.m__0() [0x00000] in /Users/builder/data/lanes/2377/73229919/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/System.Runtime.Serialization /System/Runtime/Serialization/XmlDataContract.cs:14 at System.Runtime.Serialization.XmlObjectSerializerReadContext.ReadIXmlSerializable(System.Runtime.Serialization.XmlSerializableReader xmlSerializableReader、System.Runtime.Serialization.XmlReaderDelegator xmlReader、System.Runtime.Serialization.XmlDataContract xmlDataContract 、Boolean isMemberType)/Users/builder/data/lanes/2377/73229919/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/Systemの[0x0008e] .Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerReadContext.cs:555 at System.Runtime.Serialization.XmlObjectSerializerReadContext.ReadIXmlSerializable(System.Runtime.Serialization.XmlReaderDelegatまたはxmlReader、System.Runtime.Serialization.XmlDataContract xmlDataContract、Boolean isMemberType)/Users/builder/data/lanes/2377/73229919/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/の[0x00016] System.Runtime.Serialization.XmlDataContract.ReadXmlValue(System.Runtime.Serialization.XmlReaderDelegator xmlReader、System)で525 をgit/src/mono/external/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerReadContext.csに変換します。 Runtime.Serialization.XmlObjectSerializerReadContextコンテキスト)/Users/builder/data/lanes/2377/73229919/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/の[0x00014]参照元/ System.Runtime.Serialization/System/Runtime/Serialization/XmlDataContract.cs:455

この問題を解決するのを手伝ってください。

答えて

0

最初の手順は、最新バージョンのXamarin.iOSを使用していることを確認することです。 Xamarin.iOS 9.6.1.9は問題ありません。 Xamarin.iOS 9.4または9.2も動作するはずです。

次に、デフォルトのSystem.Xml.Linq.XElementコンストラクタを保存するようにmanaged linkerに伝える必要があります。そのコンストラクタは現在のアプリでリフレクションによってのみアクセスされる可能性が高いからです。

  1. は、あなたのiOSアプリのプロジェクトに新しいLinker.xmlファイルを作成します。その型を維持する一つの方法は、「Custom Linker Configuration」を使用することです。(あなたが好きな場合は、ファイル名を変更することができます。)

  2. は、次の行追加します(のような「デバッグ| iPhone」)の各設定について

    <linker> 
        <assembly fullname="System.Xml.Linq"> 
         <type fullname="System.Xml.Linq.XElement"> 
          <method name=".ctor" /> 
         </type> 
        </assembly> 
    </linker> 
    
  3. を追加し、管理リンカ有効にしていますプロジェクトオプションの下のテキスト次> iOSが>追加のmTouch引数をビルドします。

    --xml=Linker.xml 
    
+0

非常に良好なコミュニケーション、便利で迅速なサポートを。私はあなたが提供した答えによって正しい解決策を見つけることができました。おめでとう! – NagendraBabu

関連する問題