Próbuję ustawić wartość właściwości w klasie, używając ciągu znaków. Na przykład, moja klasa ma następujące właściwości:Ustawienie C#/pobieranie właściwości klasy według nazwy ciągu znaków
myClass.Name
myClass.Address
myClass.PhoneNumber
myClass.FaxNumber
Wszystkie pola są typu ciąg, więc wiem z wyprzedzeniem, że to zawsze ciąg. Teraz chcę móc ustawić właściwości za pomocą łańcucha znaków, tak jak można to zrobić z obiektem DataSet. Coś takiego:
myClass["Name"] = "John"
myClass["Address"] = "1112 River St., Boulder, CO"
Idealnie chcę po prostu przypisać zmienną, a następnie ustawić właściwość używając tej nazwy strun ze zmiennej
string propName = "Name"
myClass[propName] = "John"
czytałem o refleksji, a może to jest sposób to zrobić ale nie jestem pewien, jak to zrobić, zachowując nienaruszony dostęp do własności w klasie. Nadal chcę móc korzystać z przykładów kodu, które będą naprawdę świetne.
Możliwy duplikat http://stackoverflow.com/questions/1089123/setting-a-property-by-reflection-with-a-string-value – Thomas
Spójrz na to zbyt: http: // stackoverflow. com/questions/279374/how-do-i-use-net-reflection-to-search-for-property-by-name-ignoring-case – MarcinJuraszek
Pamiętaj, że odbicie jest wolne. Jeśli wydajność ma znaczenie, nie jest to zalecane. –