1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- using Newtonsoft.Json;
- using XGame.Framework.Serialization;
- namespace etoy
- {
- /// <summary>
- /// 序列化用属性对象
- /// 不能反序列化
- /// </summary>
- class SerializableField : ISerializable
- {
- public string fieldType;
- public string fieldName;
- public bool isRepeated;
- public string value;
- void ISerializable.Deserialize(IReader reader)
- {
- throw new NotImplementedException();
- }
- void ISerializable.Serialize(IWriter writer)
- {
- switch (fieldType)
- {
- case FieldTypeDefine.Boolean:
- if (isRepeated)
- {
- writer.Write(JsonConvert.DeserializeObject<bool[]>(value));
- }
- else
- {
- writer.Write(value == "1" || value == "true");
- }
- break;
- case FieldTypeDefine.Int:
- if (isRepeated)
- {
- writer.Write(JsonConvert.DeserializeObject<int[]>(value));
- }
- else
- {
- writer.Write(int.Parse(value));
- }
- break;
- case FieldTypeDefine.Long:
- if (isRepeated)
- {
- writer.Write(JsonConvert.DeserializeObject<long[]>(value));
- }
- else
- {
- writer.Write(long.Parse(value));
- }
- break;
- case FieldTypeDefine.Float:
- if (isRepeated)
- {
- writer.Write(JsonConvert.DeserializeObject<float[]>(value));
- }
- else
- {
- writer.Write(float.Parse(value));
- }
- break;
- case FieldTypeDefine.Double:
- if (isRepeated)
- {
- writer.Write(JsonConvert.DeserializeObject<double[]>(value));
- }
- else
- {
- writer.Write(double.Parse(value));
- }
- break;
- case FieldTypeDefine.String:
- if (isRepeated)
- {
- writer.Write(JsonConvert.DeserializeObject<string[]>(value));
- }
- else
- {
- writer.Write(value);
- }
- break;
- }
- }
- }
- }
|