using Newtonsoft.Json;
using XGame.Framework.Serialization;
namespace etoy
{
///
/// 序列化用属性对象
/// 不能反序列化
///
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(value));
}
else
{
writer.Write(value == "1" || value == "true");
}
break;
case FieldTypeDefine.Int:
if (isRepeated)
{
writer.Write(JsonConvert.DeserializeObject(value));
}
else
{
writer.Write(int.Parse(value));
}
break;
case FieldTypeDefine.Long:
if (isRepeated)
{
writer.Write(JsonConvert.DeserializeObject(value));
}
else
{
writer.Write(long.Parse(value));
}
break;
case FieldTypeDefine.Float:
if (isRepeated)
{
writer.Write(JsonConvert.DeserializeObject(value));
}
else
{
writer.Write(float.Parse(value));
}
break;
case FieldTypeDefine.Double:
if (isRepeated)
{
writer.Write(JsonConvert.DeserializeObject(value));
}
else
{
writer.Write(double.Parse(value));
}
break;
case FieldTypeDefine.String:
if (isRepeated)
{
writer.Write(JsonConvert.DeserializeObject(value));
}
else
{
writer.Write(value);
}
break;
}
}
}
}