mardi 24 mai 2016

How to programmatically change all property values of an object based on a regex [duplicate]

This question already has an answer here:

I am trying to change all properties of a generic object. For example I have some object X which has properties X.msg:string and X.msg2:string (Again I am dealing with generic types). I specifically want to change all string properties of my object as many contain an expression such as: "Hello <br> this </br> is a test". I want to remove all occurrences of <br> and <\br>. Here is my approach:

var item = T; // item is some generic object

foreach(PropertyInfo propertyInfo in item.GetType().GetProperties(BindingFlags.Public)){
    propertyInfo.SetValue ... // not sure what to do here to change value

I am new to reflection and I'm not quite sure how I can alter these values.

EDIT: My better attempt at the set value function is:

propertyInfo.SetValue (item, propertyInfo.GetValue(item) .ToString ().Replace ("</br>", ""));

But that doesn't work (does not remove the </br>)





Aucun commentaire:

Enregistrer un commentaire