部屋とプレイヤーのプロパティ辞書の値や、RPCの引数には、シリアライズ可能な型のみ指定できます。 WSNet2のシリアライザでは、型は基本的には保存されます。 シリアライズやデシリアライズの詳細はシリアライザの使い方を参照してください。
次のプリミティブ型はそのままシリアライズできます。
bool
sbyte
byte
char
short
ushort
int
uint
long
ulong
float
double
string
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[]
もシリアライズでき、
この場合要素にリストや辞書をネストして含めることができます。
文字列やIWSNet2Serializable
、辞書、配列、リストはnull
にすることができ、
型なしのNullとしてシリアライズされます。
デシリアライズ時には指定の型のnull
になります。