private void SerializeOther(object value)
{
if (value is float)
{
this.builder.Append(((float) value).ToString("R", CultureInfo.InvariantCulture));
}
else if ((((value is int) || (value is uint)) || ((value is long) || (value is sbyte))) || (((value is byte) || (value is short)) || ((value is ushort) || (value is ulong))))
{
this.builder.Append(value);
}
else if ((value is double) || (value is decimal))
{
this.builder.Append(Convert.ToDouble(value).ToString("R", CultureInfo.InvariantCulture));
}
else
{
Dictionary<string, object> dictionary = new Dictionary<string, object>();
List<FieldInfo> list = Enumerable.ToList<FieldInfo>(value.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance));
foreach (FieldInfo info in list)
{
dictionary.Add(info.Name, info.GetValue(value));
}
List<PropertyInfo> list2 = Enumerable.ToList<PropertyInfo>(value.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance));
foreach (PropertyInfo info2 in list2)
{
dictionary.Add(info2.Name, info2.GetValue(value, null));
}
this.SerializeObject(dictionary);
}
}