반응형
/// <summary>
/// 객체 복제 (프로퍼티 값만)
/// </summary>
/// <typeparam name="T">복제될 타입</typeparam>
/// <param name="Source">원본 객체</param>
/// <returns></returns>
public static T CopyTo<T>(this object Source)
where T : class, new()
{
Type t = Source.GetType();
PropertyInfo[] properties = t.GetProperties();
T returnvalue = new T();
foreach (PropertyInfo pi in properties)
{
if (pi.CanWrite)
{
pi.SetValue(returnvalue, pi.GetValue(Source, null), null);
}
}
return returnvalue;
}
/// <summary>
/// 객체 배열을 JSON 형식으로
/// </summary>
/// <typeparam name="T">객체 형식</typeparam>
/// <param name="Source"></param>
/// <returns></returns>
public static string ToJsonString<T>(this T[] Source)
where T : class
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(Source);
}
/// <summary>
/// 객체 배열을 JSON 형식으로
/// </summary>
/// <typeparam name="T">객체 형식</typeparam>
/// <param name="Source"></param>
/// <returns></returns>
public static string ToJsonString<T>(this T Source)
where T : class
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(Source);
}
/// <summary>
/// JSON 형식을 객체 목록으로
/// </summary>
/// <typeparam name="T">객체 형식</typeparam>
/// <param name="Source"></param>
/// <returns></returns>
public static T[] ToJsonObjects<T>(this string Source)
where T : class
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Deserialize<T[]>(Source);
}
/// <summary>
/// JSON 형식을 객체로
/// </summary>
/// <typeparam name="T">객체 형식</typeparam>
/// <param name="Source"></param>
/// <returns></returns>
public static T ToJsonObject<T>(this string Source)
where T : class
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Deserialize<T>(Source);
}
반응형
'C#' 카테고리의 다른 글
CSV 파일 읽어오기 (0) | 2015.08.21 |
---|---|
Dictionary 관련 유용코드 (0) | 2015.08.21 |
Dataset Extension 데이터 존재 유무 체크, 값 등등 (0) | 2015.08.21 |
JSON array(or list) in C# (0) | 2015.08.21 |
DataSet to List (0) | 2015.08.21 |
댓글