Lo que intento hacer es establecer el valor de la propiedad en una clase utilizando una cadena. Por ejemplo, mi clase tiene las siguientes propiedades:C# setting/obtención de las propiedades de la clase por nombre de cadena
myClass.Name
myClass.Address
myClass.PhoneNumber
myClass.FaxNumber
Todos los campos son de tipo cadena, así que sé de antemano que siempre es una cadena. Ahora quiero poder establecer las propiedades usando una cadena como lo haría con el objeto DataSet. Algo como esto:
myClass["Name"] = "John"
myClass["Address"] = "1112 River St., Boulder, CO"
Idealmente Quiero simplemente asignar una variable y luego establecer la propiedad utilizando ese nombre de la cadena de la variable
string propName = "Name"
myClass[propName] = "John"
que estaba leyendo acerca de la reflexión y tal vez es la manera de hacerlo pero no estoy seguro de cómo configurarlo manteniendo el acceso a la propiedad intacto en la clase. Quiero seguir siendo capaz de usar
myClass.Name = "John"
Cualquier código de ejemplo sería realmente genial.
Posible duplicado de http://stackoverflow.com/questions/1089123/setting-a-property-by-reflection-with-a-string-value – Thomas
Mira eso también: http: // stackoverflow. com/questions/279374/how-do-i-use-net-reflection-to-search-for-a-property-by-name-ignoring-case – MarcinJuraszek
Recuerde que la reflexión es lenta. Si el rendimiento importa, no es recomendable. –