0
아래와 같이 리플렉션을 사용하여 속성 값을 설정하려고합니다. 나는 속성 유형을 찾는 대신에 int를 사용하는 대신 일반적인 유형의 방법이 있는지 알고 싶었습니다.리플렉션을 사용하여 속성 유형을 확인하는 일반적인 방법
string currentlblTxt;
string currentTxt;
Assembly assembly = Assembly.GetAssembly(typeof(myAdapter));
myAdapter currentEventObject = (myAdapter)assembly.CreateInstance(myClassName);
int m = k;
for (m = 1; m < k; m++)
{
currentlblTxt = ((Label)FindControl("lblB" + m.ToString())).Text;
currentTxt = ((TextBox)FindControl("txtB" + m.ToString())).Text;
if (!string.IsNullOrEmpty(currentTxt))
{
if (currentEventObject.GetType().GetProperty(currentlblTxt) != null)
{
if ((currentEventObject.GetType().GetProperty(currentlblTxt).PropertyType.Equals(typeof(System.Boolean))))
{
currentEventObject.GetType().GetProperty(currentlblTxt).SetValue(currentEventObject, Convert.ToBoolean(currentTxt), null);
}
else if ((currentEventObject.GetType().GetProperty(currentlblTxt).PropertyType.Equals(typeof(System.DateTime))))
{
currentEventObject.GetType().GetProperty(currentlblTxt).SetValue(currentEventObject, Convert.ToDateTime(currentTxt), null);
}
else if ((currentEventObject.GetType().GetProperty(currentlblTxt).PropertyType.Equals(typeof(System.Guid))))
{
Guid val = new Guid(currentTxt);
currentEventObject.GetType().GetProperty(currentlblTxt).SetValue(currentEventObject, val, null);
}
else
{
currentEventObject.GetType().GetProperty(currentlblTxt).SetValue(currentEventObject, currentTxt, null);
}
}
}
}
제발 제안하십시오.
감사