반응형
Firebase는 Dictionary이고, 관리의 편의를 위해 객체로 변환하고자 할 때,
상호 변환이 가능한 코드.
static으로 선언해서 사용하고, 제네릭으로 구현되어 있음.
Code
using System.Collections.Generic;
using System.Reflection;
public static class ObjectExtensions
{
public static T ToObject<T>(this IDictionary<string, object> source)
where T : class, new()
{
var someObject = new T();
var someObjectType = someObject.GetType();
foreach (var item in source)
{
someObjectType
.GetProperty(item.Key)
.SetValue(someObject, item.Value, null);
}
return someObject;
}
public static IDictionary<string, object> AsDictionary(
this object source,
BindingFlags bindingAttr = BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance)
{
return source.GetType().GetProperties(bindingAttr).ToDictionary
(
propInfo => propInfo.Name,
propInfo => propInfo.GetValue(source, null)
);
}
}
반응형
'Unity > Unity 리서치' 카테고리의 다른 글
TextmeshPro 한글폰트 적용 (0) | 2021.07.11 |
---|---|
[Firestore] 커스텀객체(Custom Object) - Dictionary 변환 (0) | 2021.07.10 |
Firebase로 서버와 데이터 주고받기 (0) | 2021.07.09 |
유니티 이벤트(UnityEvent) (0) | 2021.07.09 |
Mesh 폴리곤 수 줄이기 (0) | 2021.07.04 |