728x90
반응형
728x170
using System.Data;
using System.Reflection;
#region 값 복사하기 - Copy(source, target)
/// <summary>
/// 값 복사하기
/// </summary>
/// <param name="source">소스 데이터 행</param>
/// <param name="target">타겟 객체</param>
public void CopyValue(DataRow source, object target)
{
MemberInfo[] memberInfoArray = target.GetType().FindMembers
(
MemberTypes.Field | MemberTypes.Property,
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.IgnoreCase,
null,
null
);
foreach(MemberInfo memberInfo in memberInfoArray)
{
string memberName = memberInfo.Name;
if(!source.Table.Columns.Contains(memberName))
{
continue;
}
if(memberInfo.MemberType == MemberTypes.Field)
{
((FieldInfo)memberInfo).SetValue(target, source[memberName]);
}
else if(memberInfo.MemberType == MemberTypes.Property)
{
((PropertyInfo)memberInfo).SetValue(target, source[memberName], null);
}
}
}
#endregion
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] Stream 클래스 : 스트림 복사하기 (0) | 2020.02.02 |
---|---|
[C#/COMMON] IDataReader 인터페이스 : 열거 가능형 구하기 (0) | 2020.02.02 |
[C#/COMMON] IDataReader 인터페이스 : 제네릭 리스트 구하기 (0) | 2020.02.02 |
[C#/COMMON] 객체 값 복사하기 (0) | 2020.02.02 |
[C#/COMMON] DataRow 클래스 : 객체에서 값 복사하기 (0) | 2020.02.02 |
[C#/COMMON] 숫자 임의(Random) ID 구하기 (0) | 2020.02.02 |
[C#/COMMON] 임의(Random) ID 구하기 (0) | 2020.02.02 |
[C#/COMMON] 바이트 크기 단위 변환하기 (0) | 2020.02.02 |
[C#/COMMON] 단일 프로세스 여부 구하기 (0) | 2020.02.02 |
[C#/COMMON] 개발 프로세스 여부 구하기 (0) | 2020.02.02 |
댓글을 달아 주세요