2017-10-11 7 views
3

私はAppサービスを持つUWPアプリケーションを作成しており、それらの間の通信はAppServiceConnectionの値セットを使って行われています。私はしかし、転送される値セットでサポートされているデータの種類を見つけることはできません。ここでUWPのAppサービスと通信するときに使用できるデータタイプ

は、いくつかのテストコードは、私は以下のエラーを取得するサポートされていないデータ型を使用する場合は、このように、サポートされていないことはかなり明白である

class MyClass { public int Prop1 { get; set; } } 
var data = new ValueSet(); 
var stringlist = new List<string>() {"a string"}; 

// This does not work 
// data.Add("data", new MyClass() { Prop1 = 1}); 

// This does not work 
// data.Add("data", stringlist); 

// This works fine!! 
data.Add("data", stringlist.ToArray()); 

です。私はしかし、これを回避するためのドキュメントを見つけることはできませんし、私は正確に何がサポートされるはずです見つけることができません。

Unhandled Exception: System.Exception: Data of this type is not supported. 
(Exception from HRESULT: 0x8007065E) 

第2の質問;クラスを作成して、値セットで使用できるようにすることは可能ですか?

+0

「このクラスは、シリアライズ不可能な型がマップに入れられないようにする」というドキュメントを含めることができます。 「シリアライズ可能」なものはどこにも見つかりません。 –

答えて

0

シリアル化できるすべてのタイプを含めることができます。そのため、引数が0で、その内部のフィールドがserializableであるデフォルトのコンストラクタを持つデータ型またはシリアル化されないものはDataAnotatedとして[JsonIgnore]です。

つまり、シリアル化されたデータを値に送信するのが安全な方法です。

これを行うには、ナゲットパッケージストアののナゲットを使用し、送信する必要のあるデータがある場合は(文字列でない場合)オブジェクトをシリアル化して送信します。シリアル化されたオブジェクトを取得して、データを逆シリアル化してデータを取得できます。

関連する問題