xxxxxxxxxx
public static Dictionary<string, object> ToDictionary(this object value)
{
return JsonSerializer.Deserialize<Dictionary<string, object>>(JsonSerializer.Serialize(value));
}
xxxxxxxxxx
public static Dictionary<string, TValue> ToDictionary<TValue>(object obj)
{
var json = JsonConvert.SerializeObject(obj);
var dictionary = JsonConvert.DeserializeObject<Dictionary<string, TValue>>(json);
return dictionary;
}
xxxxxxxxxx
private static T DictionaryToObject<T>(Dictionary<string, object> dict)
{
if (dict == null)
return default;
T obj = Activator.CreateInstance<T>();
foreach ((string key, object value) in dict)
{
FieldInfo field = typeof(T).GetField(key);
if (field != null)
field.SetValue(obj, value);
}
return obj;
}