Xamarin iOSアプリのSignalRクライアントはサーバーからデータを取得しますが、プロパティがありません

マイク・リチャーズ

ちょっと待ってください、これにはたくさんの動く部分があります...私は3つの異なるアプリを持っています:

サーバ

ウェブ

iOS(Xamarin経由)

SignalRを使用して、2つのクライアント(Web、iOS)のそれぞれをサーバーと通信させています。Webはサーバーと完全にやり取りします。iOSアプリも通信しますが、オブジェクトのプロパティが常に欠落しています。

問題エンティティ:(名前は完全に返され、IDステータスはそれぞれ0とnullとして返されます)

public class Person
{
    [JsonProperty("id")]
    public long Id { get; set; }

    [JsonProperty("name")]
    public string Name { get; set; }

    [JsonProperty("status")]
    public string Status { get; set; }
}

応答:

public class Response
{
    [JsonProperty("people")]
    public IList<Person> People { get; set; }
}

ハブ方式:

public Response GetPlayers()
{
    return new Response
    {
        People = new List<Person>
        {
            new Person { Id = 1, Name = "Person 1", Status = "In" },
            new Person { Id = 2, Name = "Person 2", Status = "Out" },
            new Person { Id = 3, Name = "Person 3", Status = "In" }
        }
    };
}

Xamarin iOSアプリ:

await Hub.Start();
var peopleHubProxy = Hub.CreateHubProxy("PeopleHub");

Response response = await peopleHubProxy.Invoke<Response>("GetPlayers");

Console.WriteLine(response.People.Count); // Correct, returns 3 
Console.WriteLine(response.People[0].Name); // Correct, returns "Person 1"
Console.WriteLine(response.People[0].Id); // INCORRECT, returns 0
Console.WriteLine(response.People[0].Status); // INCORRECT, returns null

// Same goes for people 2 and 3

トレースレベルをすべてに変更すると、JSONが期待どおりに通過していることがわかります。

OnMessage({"R":{"people":[{"id":1,"name":"Person 1","status":"In"},{"id":2,"name":"Person 2","status":"Out"},{"id":3,"name":"Person 3","status":"In"}]},"I":"0"})

Webアプリケーションでは、これらのプロパティは問題なく実行されているため、問題はサーバー側ではないことがわかります。iOS / Xamarin側でこれを引き起こしている可能性があるのは何ですか?

マイク・リチャーズ

ここでの問題Responseは、パラメーターのないコンストラクターがないことが判明しました。実際には次のようなものでした。

public Response(IList<Person> people)
{
    People = people;
}

Newtonsoft(Json.NET)またはSignalRのいずれかが、とにかく正しい逆シリアル化をほぼ取得しましたが、それに関する何かがいくつかのPersonプロパティを台無しにしました...それがどのようになり得るかはわかりませんが、パラメーターなしのコンストラクターを追加するとすべてが修正されました。

public Response() { }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Xamarin.Forms iOS-アプリが現在アクティブでない場合やバックグラウンドにある場合でも、デバイスがインターネットに接続するとデータのアップロードを開始します

分類Dev

Xamarinは、「予期しないインストール出力:cmd:サービスが見つかりません:パッケージ」でアプリをエミュレーターにデプロイできませんでした

分類Dev

Xamarin Forms 4.11.0エラー:UWPのプロパティ、バインド可能なプロパティ、またはイベントが見つかりません

分類Dev

Xamarin:テスターがAppCenter FirstにログインせずにAppCenterからアプリをダウンロードする方法はありますか?

分類Dev

バインディング:「XXX」プロパティが「YYY」に見つかりません、ターゲットプロパティ:「Xamarin.Forms.Label.Text」

分類Dev

クロスプラットフォームプロジェクトにXamarin.Formsを使用していますが、GoogleサインインボタンにGoogleドローアブルの9パッチ画像を使用する必要があります

分類Dev

Xamarinアプリ(Android)は、物理デバイスからローカルネットワークのmongodbサーバーにアクセスできません

分類Dev

Xamarin iOSバインディングライブラリビューコントローラーボタンクリックすると、Xamarinフォームアプリがクラッシュします

分類Dev

「リソースが見つかりません...」空のクロスプラットフォームXamarinアプリをコンパイルしようとしています

分類Dev

Xamarin IOSは、カスタムレンダラーのIsFocusedプロパティに基づいて検索バーアイコンを非表示にします

分類Dev

Xamarin.FormsアプリはiOSで動作し、Androidでエラーをスローします(「オブジェクト参照がオブジェクトのインスタンスに設定されていません」)

分類Dev

Xamarin.iOSアプリは、Monoランタイムがない場合にクラッシュします。適切な画像が見つかりません。コード署名がブロックされたmmap

分類Dev

プロパティまたはインデクサーは、outまたはrefパラメーターとして渡されない場合がありますXamarin.Forms(C#)

分類Dev

Xamarin FormsアプリでネイティブのiOSおよびAndroidビジーインジケーターを表示する方法はありますか?

分類Dev

xamarinフォームiOSbashスクリプトがアプリセンターにありません

分類Dev

xamarin androidのサードパーティアプリからresposeを受け取った後、androidアプリをフォアグラウンドにします

分類Dev

Xamarin.IoTアプリケーションをデバッグするには、Raspbianに何をインストールする必要がありますか?

分類Dev

Xamarin FormsUWPアプリの「パラメーターが正しくありません」のクラッシュを解決するにはどうすればよいですか。

分類Dev

Xamarin.Forms UWP-このアプリを展開するには、展開ターゲットでWindowsユニバーサルランタイムバージョン10.0.16299.0以降が実行されている必要があります

分類Dev

AndroidでリリースされたアプリにはインターネットアクセスがありませんXamarin

分類Dev

XamarinをコンパイルするにはMacが必要ですが、リモートMacサービスがあるので必要ありませんか?

分類Dev

async / awaitメソッドはAndroidでWebサービスの応答をクラッシュさせますが、同じコードがxamarinネイティブアプリケーションのWindowPhoneおよびiOSアプリで正常に機能します

分類Dev

xamarin.formsアプリを単体テストし、アプリセンターでciのテストセットを使用する方法はありますか?

分類Dev

Visual Studio2017でクロスプラットフォームアプリXamarinが見つかりません

分類Dev

エラーCS0115:Xamarinバインディングライブラリプロジェクトでオーバーライドする適切なメソッドが見つかりません

分類Dev

Xamarin'ToolbarItems 'のプロパティ、バインド可能なプロパティ、またはイベントが見つかりません

分類Dev

Xamarin:特定のアプリがIOSデバイスにインストールされているかどうかを確認します

分類Dev

Xamarin.iosネイティブアプリでカスタムコントローラークラスから新しいストーリーボードを開くにはどうすればよいですか?

分類Dev

XamarinをターゲットとするUWPアプリにタブがありません

Related 関連記事

  1. 1

    Xamarin.Forms iOS-アプリが現在アクティブでない場合やバックグラウンドにある場合でも、デバイスがインターネットに接続するとデータのアップロードを開始します

  2. 2

    Xamarinは、「予期しないインストール出力:cmd:サービスが見つかりません:パッケージ」でアプリをエミュレーターにデプロイできませんでした

  3. 3

    Xamarin Forms 4.11.0エラー:UWPのプロパティ、バインド可能なプロパティ、またはイベントが見つかりません

  4. 4

    Xamarin:テスターがAppCenter FirstにログインせずにAppCenterからアプリをダウンロードする方法はありますか?

  5. 5

    バインディング:「XXX」プロパティが「YYY」に見つかりません、ターゲットプロパティ:「Xamarin.Forms.Label.Text」

  6. 6

    クロスプラットフォームプロジェクトにXamarin.Formsを使用していますが、GoogleサインインボタンにGoogleドローアブルの9パッチ画像を使用する必要があります

  7. 7

    Xamarinアプリ(Android)は、物理デバイスからローカルネットワークのmongodbサーバーにアクセスできません

  8. 8

    Xamarin iOSバインディングライブラリビューコントローラーボタンクリックすると、Xamarinフォームアプリがクラッシュします

  9. 9

    「リソースが見つかりません...」空のクロスプラットフォームXamarinアプリをコンパイルしようとしています

  10. 10

    Xamarin IOSは、カスタムレンダラーのIsFocusedプロパティに基づいて検索バーアイコンを非表示にします

  11. 11

    Xamarin.FormsアプリはiOSで動作し、Androidでエラーをスローします(「オブジェクト参照がオブジェクトのインスタンスに設定されていません」)

  12. 12

    Xamarin.iOSアプリは、Monoランタイムがない場合にクラッシュします。適切な画像が見つかりません。コード署名がブロックされたmmap

  13. 13

    プロパティまたはインデクサーは、outまたはrefパラメーターとして渡されない場合がありますXamarin.Forms(C#)

  14. 14

    Xamarin FormsアプリでネイティブのiOSおよびAndroidビジーインジケーターを表示する方法はありますか?

  15. 15

    xamarinフォームiOSbashスクリプトがアプリセンターにありません

  16. 16

    xamarin androidのサードパーティアプリからresposeを受け取った後、androidアプリをフォアグラウンドにします

  17. 17

    Xamarin.IoTアプリケーションをデバッグするには、Raspbianに何をインストールする必要がありますか?

  18. 18

    Xamarin FormsUWPアプリの「パラメーターが正しくありません」のクラッシュを解決するにはどうすればよいですか。

  19. 19

    Xamarin.Forms UWP-このアプリを展開するには、展開ターゲットでWindowsユニバーサルランタイムバージョン10.0.16299.0以降が実行されている必要があります

  20. 20

    AndroidでリリースされたアプリにはインターネットアクセスがありませんXamarin

  21. 21

    XamarinをコンパイルするにはMacが必要ですが、リモートMacサービスがあるので必要ありませんか?

  22. 22

    async / awaitメソッドはAndroidでWebサービスの応答をクラッシュさせますが、同じコードがxamarinネイティブアプリケーションのWindowPhoneおよびiOSアプリで正常に機能します

  23. 23

    xamarin.formsアプリを単体テストし、アプリセンターでciのテストセットを使用する方法はありますか?

  24. 24

    Visual Studio2017でクロスプラットフォームアプリXamarinが見つかりません

  25. 25

    エラーCS0115:Xamarinバインディングライブラリプロジェクトでオーバーライドする適切なメソッドが見つかりません

  26. 26

    Xamarin'ToolbarItems 'のプロパティ、バインド可能なプロパティ、またはイベントが見つかりません

  27. 27

    Xamarin:特定のアプリがIOSデバイスにインストールされているかどうかを確認します

  28. 28

    Xamarin.iosネイティブアプリでカスタムコントローラークラスから新しいストーリーボードを開くにはどうすればよいですか?

  29. 29

    XamarinをターゲットとするUWPアプリにタブがありません

ホットタグ

アーカイブ