사용자 지정 클래스 속성 집합이 있습니다. 각 속성의 이름은 데이터베이스의 값과 동일합니다. 내가 뭘하고 싶은지 동적으로 스위치를 기반으로 각 속성에 대한 값을 설정합니다. 사용자 지정 클래스 속성 - 동적 참조
사용자 지정 속성
은 다음과 같이 보일 : 는class MyDEF
{
#region Variable Declaration Section....
private string _ABC01;
private string _ABC02;
private string _ABC03;
private string _ABC04;
#endregion
#region Property Declaration Section
public string ABC01
{
get { return _ABC01; }
set { _ABC01= value; }
}
public string ABC02
{
get { return _ABC02; }
set { _ABC02= value; }
}
public string ABC03
{
get { return _ABC03; }
set { _ABC03= value; }
}
public string ABC04
{
get { return _ABC04; }
set { _ABC04= value; }
}
#endregion
}
그런 다음 값의 코드 로딩과 같이 보인다 :
foreach (DataRow dr in dataTable.Rows)
{
ED = dr["FieldDesc"].ToString();
switch (ED)
{
case "ABC01":
ratesVO.ABC01 = dr["DefaultValue"].ToString();
break;
case "ABC02":
ratesVO.ABC02 = dr["DefaultValue"].ToString();
break;
case "ABC03":
ratesVO.ABC03 = dr["DefaultValue"].ToString();
break;
case "ABC04":
ratesVO.ABC04 = dr["DefaultValue"].ToString();
break;
}
}
을 내가 달성하고자하는 것은 무엇인가와 같은 :
foreach (DataRow dr in dataTable.Rows)
{
ED = dr["FieldDesc"].ToString();
MyCustomProperty.ED = dr["DefaultValue"].ToString();
}
이것이 가능합니까? 그렇다면 예제 또는 참조를 제공해주십시오.
ㅎ; "PropertyInfo.SetValue는 세 번째 매개 변수가 필요합니다"라고 말하려고했으나 마침내 SetValue (obj, value) 오버로드가 추가 된 것처럼 보입니다 (.NET 4.5). –
@MarcGravell : 예, correct –
아마도 ratesVO를 올바르게 선언하지 않을 것입니다. 왜냐하면 내가 rateVO라고 입력했기 때문이야. 내가 본 모든 것은 특성입니다. GetType 메서드 나 다른 메서드가 전혀 표시되지 않습니다. – Darkman