Skip to content

Latest commit

 

History

History
70 lines (49 loc) · 2.33 KB

serializable.md

File metadata and controls

70 lines (49 loc) · 2.33 KB

シリアライズ可能な型

目次

概要

部屋とプレイヤーのプロパティ辞書の値や、RPCの引数には、シリアライズ可能な型のみ指定できます。 WSNet2のシリアライザでは、型は基本的には保存されます。 シリアライズやデシリアライズの詳細はシリアライザの使い方を参照してください。

型一覧

プリミティブ型

次のプリミティブ型はそのままシリアライズできます。

  • bool
  • sbyte
  • byte
  • char
  • short
  • ushort
  • int
  • uint
  • long
  • ulong
  • float
  • double
  • string

IWSNet2Serializable型

IWSNet2Serializableを実装した型は、 WSNet2Serializerクラスに登録することでシリアライズ出来るようになります。

static void Register<T>(byte classID) where T : class, IWSNet2Serializable, new();

型ごとに1byteのclassIDを割り当てるため、最大256種類登録できます。 全てのクライアントで型とclassIDの対応は一致している必要があります。

辞書型

キーがstringで、値が「シリアライズ可能な型」の辞書Dictionary<string, object>型がシリアライズできます。 値として辞書やリストを含めることもできます。

配列・リスト

シリアライズ可能なプリミティブ型の配列(int[]など)はそのままシリアライズできます。

IWSNet2Serializableを実装した単一の型Tについて、List<T>T[]もシリアライズ可能です。

さらに、全要素が「シリアライズ可能な型」のList<object>object[]もシリアライズでき、 この場合要素にリストや辞書をネストして含めることができます。

Nullの扱い

文字列やIWSNet2Serializable、辞書、配列、リストはnullにすることができ、 型なしのNullとしてシリアライズされます。

デシリアライズ時には指定の型のnullになります。