Files
2026-06-04 11:42:34 +02:00

765 lines
23 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using Google.Protobuf.Reflection;
using Google.Protobuf.WellKnownTypes;
namespace Google.Protobuf
{
// Token: 0x0200000F RID: 15
public sealed class JsonFormatter
{
// Token: 0x17000015 RID: 21
// (get) Token: 0x060000D4 RID: 212 RVA: 0x00004564 File Offset: 0x00002764
public static JsonFormatter Default { get; } = new JsonFormatter(JsonFormatter.Settings.Default);
// Token: 0x060000D5 RID: 213 RVA: 0x0000456C File Offset: 0x0000276C
static JsonFormatter()
{
for (int i = 0; i < JsonFormatter.CommonRepresentations.Length; i++)
{
if (JsonFormatter.CommonRepresentations[i] == "")
{
JsonFormatter.CommonRepresentations[i] = ((char)i).ToString();
}
}
}
// Token: 0x17000016 RID: 22
// (get) Token: 0x060000D6 RID: 214 RVA: 0x00004BD3 File Offset: 0x00002DD3
private bool DiagnosticOnly
{
get
{
return this == JsonFormatter.diagnosticFormatter;
}
}
// Token: 0x060000D7 RID: 215 RVA: 0x00004BDD File Offset: 0x00002DDD
public JsonFormatter(JsonFormatter.Settings settings)
{
this.settings = settings;
}
// Token: 0x060000D8 RID: 216 RVA: 0x00004BEC File Offset: 0x00002DEC
public string Format(IMessage message)
{
StringWriter stringWriter = new StringWriter();
this.Format(message, stringWriter);
return stringWriter.ToString();
}
// Token: 0x060000D9 RID: 217 RVA: 0x00004C0D File Offset: 0x00002E0D
public void Format(IMessage message, TextWriter writer)
{
ProtoPreconditions.CheckNotNull<IMessage>(message, "message");
ProtoPreconditions.CheckNotNull<TextWriter>(writer, "writer");
if (message.Descriptor.IsWellKnownType)
{
this.WriteWellKnownTypeValue(writer, message.Descriptor, message);
return;
}
this.WriteMessage(writer, message);
}
// Token: 0x060000DA RID: 218 RVA: 0x00004C4B File Offset: 0x00002E4B
public static string ToDiagnosticString(IMessage message)
{
ProtoPreconditions.CheckNotNull<IMessage>(message, "message");
return JsonFormatter.diagnosticFormatter.Format(message);
}
// Token: 0x060000DB RID: 219 RVA: 0x00004C64 File Offset: 0x00002E64
private void WriteMessage(TextWriter writer, IMessage message)
{
if (message == null)
{
JsonFormatter.WriteNull(writer);
return;
}
if (this.DiagnosticOnly)
{
ICustomDiagnosticMessage customDiagnosticMessage = message as ICustomDiagnosticMessage;
if (customDiagnosticMessage != null)
{
writer.Write(customDiagnosticMessage.ToDiagnosticString());
return;
}
}
writer.Write("{ ");
writer.Write(this.WriteMessageFields(writer, message, false) ? " }" : "}");
}
// Token: 0x060000DC RID: 220 RVA: 0x00004CC4 File Offset: 0x00002EC4
private bool WriteMessageFields(TextWriter writer, IMessage message, bool assumeFirstFieldWritten)
{
MessageDescriptor.FieldCollection fields = message.Descriptor.Fields;
bool flag = !assumeFirstFieldWritten;
foreach (FieldDescriptor fieldDescriptor in fields.InFieldNumberOrder())
{
IFieldAccessor accessor = fieldDescriptor.Accessor;
if (fieldDescriptor.ContainingOneof == null || fieldDescriptor.ContainingOneof.Accessor.GetCaseFieldDescriptor(message) == fieldDescriptor)
{
object value = accessor.GetValue(message);
if (fieldDescriptor.ContainingOneof != null || this.settings.FormatDefaultValues || !JsonFormatter.IsDefaultValue(accessor, value))
{
if (!flag)
{
writer.Write(", ");
}
JsonFormatter.WriteString(writer, accessor.Descriptor.JsonName);
writer.Write(": ");
this.WriteValue(writer, value);
flag = false;
}
}
}
return !flag;
}
// Token: 0x060000DD RID: 221 RVA: 0x00004DA4 File Offset: 0x00002FA4
private static string ToCamelCaseForFieldMask(string input)
{
for (int i = 0; i < input.Length; i++)
{
char c = input[i];
if (c >= 'A' && c <= 'Z')
{
throw new InvalidOperationException(string.Format("Invalid field mask to be converted to JSON: {0}", input));
}
if (c == '_' && i < input.Length - 1)
{
char c2 = input[i + 1];
if (c2 < 'a' || c2 > 'z')
{
throw new InvalidOperationException(string.Format("Invalid field mask to be converted to JSON: {0}", input));
}
}
}
return JsonFormatter.ToCamelCase(input);
}
// Token: 0x060000DE RID: 222 RVA: 0x00004E20 File Offset: 0x00003020
internal static string ToCamelCase(string input)
{
bool flag = false;
bool flag2 = true;
bool flag3 = true;
StringBuilder stringBuilder = new StringBuilder(input.Length);
int i = 0;
while (i < input.Length)
{
bool flag4 = char.IsUpper(input[i]);
if (input[i] == '_')
{
flag = true;
if (stringBuilder.Length != 0)
{
flag3 = false;
}
}
else if (flag3)
{
if (stringBuilder.Length != 0 && flag4 && (!flag2 || (i + 1 < input.Length && char.IsLower(input[i + 1]))))
{
flag3 = false;
stringBuilder.Append(input[i]);
}
else
{
stringBuilder.Append(char.ToLowerInvariant(input[i]));
}
}
else if (flag)
{
flag = false;
if (char.IsLower(input[i]))
{
stringBuilder.Append(char.ToUpperInvariant(input[i]));
}
else
{
stringBuilder.Append(input[i]);
}
}
else
{
stringBuilder.Append(char.ToLowerInvariant(input[i]));
}
i++;
flag2 = flag4;
}
return stringBuilder.ToString();
}
// Token: 0x060000DF RID: 223 RVA: 0x00004F43 File Offset: 0x00003143
private static void WriteNull(TextWriter writer)
{
writer.Write("null");
}
// Token: 0x060000E0 RID: 224 RVA: 0x00004F50 File Offset: 0x00003150
private static bool IsDefaultValue(IFieldAccessor accessor, object value)
{
if (accessor.Descriptor.IsMap)
{
return ((IDictionary)value).Count == 0;
}
if (accessor.Descriptor.IsRepeated)
{
return ((IList)value).Count == 0;
}
switch (accessor.Descriptor.FieldType)
{
case FieldType.Double:
return (double)value == 0.0;
case FieldType.Float:
return (float)value == 0f;
case FieldType.Int64:
case FieldType.SFixed64:
case FieldType.SInt64:
return (long)value == 0L;
case FieldType.UInt64:
case FieldType.Fixed64:
return (ulong)value == 0UL;
case FieldType.Int32:
case FieldType.SFixed32:
case FieldType.SInt32:
case FieldType.Enum:
return (int)value == 0;
case FieldType.Fixed32:
case FieldType.UInt32:
return (uint)value == 0U;
case FieldType.Bool:
return !(bool)value;
case FieldType.String:
return (string)value == "";
case FieldType.Group:
case FieldType.Message:
return value == null;
case FieldType.Bytes:
return (ByteString)value == ByteString.Empty;
default:
throw new ArgumentException("Invalid field type");
}
}
// Token: 0x060000E1 RID: 225 RVA: 0x00005078 File Offset: 0x00003278
public void WriteValue(TextWriter writer, object value)
{
if (value == null)
{
JsonFormatter.WriteNull(writer);
return;
}
if (value is bool)
{
writer.Write(((bool)value) ? "true" : "false");
return;
}
if (value is ByteString)
{
writer.Write('"');
writer.Write(((ByteString)value).ToBase64());
writer.Write('"');
return;
}
if (value is string)
{
JsonFormatter.WriteString(writer, (string)value);
return;
}
if (value is IDictionary)
{
this.WriteDictionary(writer, (IDictionary)value);
return;
}
if (value is IList)
{
this.WriteList(writer, (IList)value);
return;
}
if (value is int || value is uint)
{
IFormattable formattable = (IFormattable)value;
writer.Write(formattable.ToString("d", CultureInfo.InvariantCulture));
return;
}
if (value is long || value is ulong)
{
writer.Write('"');
IFormattable formattable2 = (IFormattable)value;
writer.Write(formattable2.ToString("d", CultureInfo.InvariantCulture));
writer.Write('"');
return;
}
if (value is global::System.Enum)
{
string originalName = JsonFormatter.OriginalEnumValueHelper.GetOriginalName(value);
if (originalName != null)
{
JsonFormatter.WriteString(writer, originalName);
return;
}
this.WriteValue(writer, (int)value);
return;
}
else if (value is float || value is double)
{
string text = ((IFormattable)value).ToString("r", CultureInfo.InvariantCulture);
if (text == "NaN" || text == "Infinity" || text == "-Infinity")
{
writer.Write('"');
writer.Write(text);
writer.Write('"');
return;
}
writer.Write(text);
return;
}
else
{
if (value is IMessage)
{
this.Format((IMessage)value, writer);
return;
}
throw new ArgumentException("Unable to format value of type " + value.GetType());
}
}
// Token: 0x060000E2 RID: 226 RVA: 0x00005250 File Offset: 0x00003450
private void WriteWellKnownTypeValue(TextWriter writer, MessageDescriptor descriptor, object value)
{
if (value == null)
{
JsonFormatter.WriteNull(writer);
return;
}
if (descriptor.IsWrapperType)
{
if (value is IMessage)
{
IMessage message = (IMessage)value;
value = message.Descriptor.Fields[1].Accessor.GetValue(message);
}
this.WriteValue(writer, value);
return;
}
if (descriptor.FullName == Timestamp.Descriptor.FullName)
{
this.WriteTimestamp(writer, (IMessage)value);
return;
}
if (descriptor.FullName == Duration.Descriptor.FullName)
{
this.WriteDuration(writer, (IMessage)value);
return;
}
if (descriptor.FullName == FieldMask.Descriptor.FullName)
{
this.WriteFieldMask(writer, (IMessage)value);
return;
}
if (descriptor.FullName == Struct.Descriptor.FullName)
{
this.WriteStruct(writer, (IMessage)value);
return;
}
if (descriptor.FullName == ListValue.Descriptor.FullName)
{
IFieldAccessor accessor = descriptor.Fields[1].Accessor;
this.WriteList(writer, (IList)accessor.GetValue((IMessage)value));
return;
}
if (descriptor.FullName == Value.Descriptor.FullName)
{
this.WriteStructFieldValue(writer, (IMessage)value);
return;
}
if (descriptor.FullName == Any.Descriptor.FullName)
{
this.WriteAny(writer, (IMessage)value);
return;
}
this.WriteMessage(writer, (IMessage)value);
}
// Token: 0x060000E3 RID: 227 RVA: 0x000053D4 File Offset: 0x000035D4
private void WriteTimestamp(TextWriter writer, IMessage value)
{
int num = (int)value.Descriptor.Fields[2].Accessor.GetValue(value);
long num2 = (long)value.Descriptor.Fields[1].Accessor.GetValue(value);
writer.Write(Timestamp.ToJson(num2, num, this.DiagnosticOnly));
}
// Token: 0x060000E4 RID: 228 RVA: 0x00005438 File Offset: 0x00003638
private void WriteDuration(TextWriter writer, IMessage value)
{
int num = (int)value.Descriptor.Fields[2].Accessor.GetValue(value);
long num2 = (long)value.Descriptor.Fields[1].Accessor.GetValue(value);
writer.Write(Duration.ToJson(num2, num, this.DiagnosticOnly));
}
// Token: 0x060000E5 RID: 229 RVA: 0x0000549C File Offset: 0x0000369C
private void WriteFieldMask(TextWriter writer, IMessage value)
{
IList<string> list = (IList<string>)value.Descriptor.Fields[1].Accessor.GetValue(value);
writer.Write(FieldMask.ToJson(list, this.DiagnosticOnly));
}
// Token: 0x060000E6 RID: 230 RVA: 0x000054E0 File Offset: 0x000036E0
private void WriteAny(TextWriter writer, IMessage value)
{
if (this.DiagnosticOnly)
{
this.WriteDiagnosticOnlyAny(writer, value);
return;
}
string text = (string)value.Descriptor.Fields[1].Accessor.GetValue(value);
ByteString byteString = (ByteString)value.Descriptor.Fields[2].Accessor.GetValue(value);
string typeName = Any.GetTypeName(text);
MessageDescriptor messageDescriptor = this.settings.TypeRegistry.Find(typeName);
if (messageDescriptor == null)
{
throw new InvalidOperationException(string.Format("Type registry has no descriptor for type name '{0}'", typeName));
}
IMessage message = messageDescriptor.Parser.ParseFrom(byteString);
writer.Write("{ ");
JsonFormatter.WriteString(writer, "@type");
writer.Write(": ");
JsonFormatter.WriteString(writer, text);
if (messageDescriptor.IsWellKnownType)
{
writer.Write(", ");
JsonFormatter.WriteString(writer, "value");
writer.Write(": ");
this.WriteWellKnownTypeValue(writer, messageDescriptor, message);
}
else
{
this.WriteMessageFields(writer, message, true);
}
writer.Write(" }");
}
// Token: 0x060000E7 RID: 231 RVA: 0x000055F0 File Offset: 0x000037F0
private void WriteDiagnosticOnlyAny(TextWriter writer, IMessage value)
{
string text = (string)value.Descriptor.Fields[1].Accessor.GetValue(value);
ByteString byteString = (ByteString)value.Descriptor.Fields[2].Accessor.GetValue(value);
writer.Write("{ ");
JsonFormatter.WriteString(writer, "@type");
writer.Write(": ");
JsonFormatter.WriteString(writer, text);
writer.Write(", ");
JsonFormatter.WriteString(writer, "@value");
writer.Write(": ");
writer.Write('"');
writer.Write(byteString.ToBase64());
writer.Write('"');
writer.Write(" }");
}
// Token: 0x060000E8 RID: 232 RVA: 0x000056B4 File Offset: 0x000038B4
private void WriteStruct(TextWriter writer, IMessage message)
{
writer.Write("{ ");
IDictionary dictionary = (IDictionary)message.Descriptor.Fields[1].Accessor.GetValue(message);
bool flag = true;
foreach (object obj in dictionary)
{
DictionaryEntry dictionaryEntry = (DictionaryEntry)obj;
string text = (string)dictionaryEntry.Key;
IMessage message2 = (IMessage)dictionaryEntry.Value;
if (string.IsNullOrEmpty(text) || message2 == null)
{
throw new InvalidOperationException("Struct fields cannot have an empty key or a null value.");
}
if (!flag)
{
writer.Write(", ");
}
JsonFormatter.WriteString(writer, text);
writer.Write(": ");
this.WriteStructFieldValue(writer, message2);
flag = false;
}
writer.Write(flag ? "}" : " }");
}
// Token: 0x060000E9 RID: 233 RVA: 0x000057A4 File Offset: 0x000039A4
private void WriteStructFieldValue(TextWriter writer, IMessage message)
{
FieldDescriptor caseFieldDescriptor = message.Descriptor.Oneofs[0].Accessor.GetCaseFieldDescriptor(message);
if (caseFieldDescriptor == null)
{
throw new InvalidOperationException("Value message must contain a value for the oneof.");
}
object value = caseFieldDescriptor.Accessor.GetValue(message);
switch (caseFieldDescriptor.FieldNumber)
{
case 1:
JsonFormatter.WriteNull(writer);
return;
case 2:
case 3:
case 4:
this.WriteValue(writer, value);
return;
case 5:
case 6:
{
IMessage message2 = (IMessage)caseFieldDescriptor.Accessor.GetValue(message);
this.WriteWellKnownTypeValue(writer, message2.Descriptor, message2);
return;
}
default:
throw new InvalidOperationException("Unexpected case in struct field: " + caseFieldDescriptor.FieldNumber);
}
}
// Token: 0x060000EA RID: 234 RVA: 0x00005860 File Offset: 0x00003A60
internal void WriteList(TextWriter writer, IList list)
{
writer.Write("[ ");
bool flag = true;
foreach (object obj in list)
{
if (!flag)
{
writer.Write(", ");
}
this.WriteValue(writer, obj);
flag = false;
}
writer.Write(flag ? "]" : " ]");
}
// Token: 0x060000EB RID: 235 RVA: 0x000058E4 File Offset: 0x00003AE4
internal void WriteDictionary(TextWriter writer, IDictionary dictionary)
{
writer.Write("{ ");
bool flag = true;
foreach (object obj in dictionary)
{
DictionaryEntry dictionaryEntry = (DictionaryEntry)obj;
if (!flag)
{
writer.Write(", ");
}
string text;
if (dictionaryEntry.Key is string)
{
text = (string)dictionaryEntry.Key;
}
else if (dictionaryEntry.Key is bool)
{
text = (((bool)dictionaryEntry.Key) ? "true" : "false");
}
else if (dictionaryEntry.Key is int || ((dictionaryEntry.Key is uint) | (dictionaryEntry.Key is long)) || dictionaryEntry.Key is ulong)
{
text = ((IFormattable)dictionaryEntry.Key).ToString("d", CultureInfo.InvariantCulture);
}
else
{
if (dictionaryEntry.Key == null)
{
throw new ArgumentException("Dictionary has entry with null key");
}
throw new ArgumentException("Unhandled dictionary key type: " + dictionaryEntry.Key.GetType());
}
JsonFormatter.WriteString(writer, text);
writer.Write(": ");
this.WriteValue(writer, dictionaryEntry.Value);
flag = false;
}
writer.Write(flag ? "}" : " }");
}
// Token: 0x060000EC RID: 236 RVA: 0x00005A74 File Offset: 0x00003C74
internal static void WriteString(TextWriter writer, string text)
{
writer.Write('"');
for (int i = 0; i < text.Length; i++)
{
char c = text[i];
if (c < '\u00a0')
{
writer.Write(JsonFormatter.CommonRepresentations[(int)c]);
}
else if (char.IsHighSurrogate(c))
{
i++;
if (i == text.Length || !char.IsLowSurrogate(text[i]))
{
throw new ArgumentException("String contains low surrogate not followed by high surrogate");
}
JsonFormatter.HexEncodeUtf16CodeUnit(writer, c);
JsonFormatter.HexEncodeUtf16CodeUnit(writer, text[i]);
}
else
{
if (char.IsLowSurrogate(c))
{
throw new ArgumentException("String contains high surrogate not preceded by low surrogate");
}
uint num = (uint)c;
if (num <= 1807U)
{
if (num != 173U && num != 1757U && num != 1807U)
{
goto IL_D4;
}
}
else if (num - 6068U > 1U && num != 65279U && num - 65529U > 2U)
{
goto IL_D4;
}
JsonFormatter.HexEncodeUtf16CodeUnit(writer, c);
goto IL_134;
IL_D4:
if ((c >= '\u0600' && c <= '\u0603') || (c >= '\u200b' && c <= '\u200f') || (c >= '\u2028' && c <= '\u202e') || (c >= '\u2060' && c <= '\u2064') || (c >= '\u206a' && c <= '\u206f'))
{
JsonFormatter.HexEncodeUtf16CodeUnit(writer, c);
}
else
{
writer.Write(c);
}
}
IL_134:;
}
writer.Write('"');
}
// Token: 0x060000ED RID: 237 RVA: 0x00005BD0 File Offset: 0x00003DD0
private static void HexEncodeUtf16CodeUnit(TextWriter writer, char c)
{
writer.Write("\\u");
writer.Write("0123456789abcdef"[(int)((c >> 12) & '\u000f')]);
writer.Write("0123456789abcdef"[(int)((c >> 8) & '\u000f')]);
writer.Write("0123456789abcdef"[(int)((c >> 4) & '\u000f')]);
writer.Write("0123456789abcdef"[(int)(c & '\u000f')]);
}
// Token: 0x04000029 RID: 41
internal const string AnyTypeUrlField = "@type";
// Token: 0x0400002A RID: 42
internal const string AnyDiagnosticValueField = "@value";
// Token: 0x0400002B RID: 43
internal const string AnyWellKnownTypeValueField = "value";
// Token: 0x0400002C RID: 44
private const string TypeUrlPrefix = "type.googleapis.com";
// Token: 0x0400002D RID: 45
private const string NameValueSeparator = ": ";
// Token: 0x0400002E RID: 46
private const string PropertySeparator = ", ";
// Token: 0x04000030 RID: 48
private static readonly JsonFormatter diagnosticFormatter = new JsonFormatter(JsonFormatter.Settings.Default);
// Token: 0x04000031 RID: 49
private static readonly string[] CommonRepresentations = new string[]
{
"\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", "\\u0006", "\\u0007", "\\b", "\\t",
"\\n", "\\u000b", "\\f", "\\r", "\\u000e", "\\u000f", "\\u0010", "\\u0011", "\\u0012", "\\u0013",
"\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", "\\u001a", "\\u001b", "\\u001c", "\\u001d",
"\\u001e", "\\u001f", "", "", "\\\"", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"\\u003c", "", "\\u003e", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "\\\\", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "\\u007f", "\\u0080", "\\u0081",
"\\u0082", "\\u0083", "\\u0084", "\\u0085", "\\u0086", "\\u0087", "\\u0088", "\\u0089", "\\u008a", "\\u008b",
"\\u008c", "\\u008d", "\\u008e", "\\u008f", "\\u0090", "\\u0091", "\\u0092", "\\u0093", "\\u0094", "\\u0095",
"\\u0096", "\\u0097", "\\u0098", "\\u0099", "\\u009a", "\\u009b", "\\u009c", "\\u009d", "\\u009e", "\\u009f"
};
// Token: 0x04000032 RID: 50
private readonly JsonFormatter.Settings settings;
// Token: 0x04000033 RID: 51
private const string Hex = "0123456789abcdef";
// Token: 0x0200007D RID: 125
public sealed class Settings
{
// Token: 0x170001CC RID: 460
// (get) Token: 0x060006AB RID: 1707 RVA: 0x0001666F File Offset: 0x0001486F
public static JsonFormatter.Settings Default { get; } = new JsonFormatter.Settings(false);
// Token: 0x170001CD RID: 461
// (get) Token: 0x060006AD RID: 1709 RVA: 0x00016683 File Offset: 0x00014883
public bool FormatDefaultValues { get; }
// Token: 0x170001CE RID: 462
// (get) Token: 0x060006AE RID: 1710 RVA: 0x0001668B File Offset: 0x0001488B
public TypeRegistry TypeRegistry { get; }
// Token: 0x060006AF RID: 1711 RVA: 0x00016693 File Offset: 0x00014893
public Settings(bool formatDefaultValues)
: this(formatDefaultValues, TypeRegistry.Empty)
{
}
// Token: 0x060006B0 RID: 1712 RVA: 0x000166A1 File Offset: 0x000148A1
public Settings(bool formatDefaultValues, TypeRegistry typeRegistry)
{
this.FormatDefaultValues = formatDefaultValues;
this.TypeRegistry = ProtoPreconditions.CheckNotNull<TypeRegistry>(typeRegistry, "typeRegistry");
}
}
// Token: 0x0200007E RID: 126
private static class OriginalEnumValueHelper
{
// Token: 0x060006B1 RID: 1713 RVA: 0x000166C4 File Offset: 0x000148C4
internal static string GetOriginalName(object value)
{
global::System.Type type = value.GetType();
Dictionary<global::System.Type, Dictionary<object, string>> dictionary = JsonFormatter.OriginalEnumValueHelper.dictionaries;
Dictionary<object, string> nameMapping;
lock (dictionary)
{
if (!JsonFormatter.OriginalEnumValueHelper.dictionaries.TryGetValue(type, out nameMapping))
{
nameMapping = JsonFormatter.OriginalEnumValueHelper.GetNameMapping(type);
JsonFormatter.OriginalEnumValueHelper.dictionaries[type] = nameMapping;
}
}
string text;
nameMapping.TryGetValue(value, out text);
return text;
}
// Token: 0x060006B2 RID: 1714 RVA: 0x0001672C File Offset: 0x0001492C
private static Dictionary<object, string> GetNameMapping(global::System.Type enumType)
{
return enumType.GetFields(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic).ToDictionary((FieldInfo f) => f.GetValue(null), delegate(FieldInfo f)
{
OriginalNameAttribute originalNameAttribute = f.GetCustomAttributes(typeof(OriginalNameAttribute), false).FirstOrDefault<object>() as OriginalNameAttribute;
return ((originalNameAttribute != null) ? originalNameAttribute.Name : null) ?? f.Name;
});
}
// Token: 0x0400029A RID: 666
private static readonly Dictionary<global::System.Type, Dictionary<object, string>> dictionaries = new Dictionary<global::System.Type, Dictionary<object, string>>();
}
}
}