2016-10-31 1 views
0

런타임까지 개체의 어떤 속성을 할당해야하는지 알 수 없습니다.런타임까지 속성 이름을 알 수없는 경우 개체 속성 중 하나에 값을 할당하는 방법

클래스의 인스턴스가 servicerecord이며이 문자열로 정의 된 몇 가지 속성이 있습니다

public class ServiceRecord 
{ 
     public ServiceRecord(){} 

     public string dos1 { get; set; } 
     public string dos2 { get; set; } 
     public string dos3 { get; set; } 
     public string dos4 { get; set; } 
     <snip> 
    } 

가의 실행시에, 나는 프로그램이 문자열 값을 할당 할 필요가 있음을 발견한다고 가정 해 봅시다을 2016년 11월 2일 "라고 "(즉, 날짜의 문자열 표현)은 servicerecord.dos3입니다.

어떻게 C#에서 System.Reflection을 사용하여 완성 되었습니까?

자바 스크립트에서는은 다음과 같습니다 servicerecord["dos3"] = ...

어떤 문자열 속성을 참조로 C#을 대응이야?

답변

1

PropertyInfo을 사용하면이 작업을 수행 할 수 있습니다.

// Get property to write to. 
PropertyInfo pi = _serviceRecord.GetType().GetProperty("dos3"); 
// Write value to property. 
pi.SetValue(_serviceRecord, stringValue, null); 
0

Dictionary<string,string>처럼 좋을 것 같습니다. ServiceRecord의 생성자에서 네 개의 항목을 초기화하는 것을 잊지 마십시오.

관련 문제