Dynamically change the value of public variable using reflection in c#

Once i was working on asp.net project and i got a little task that i need to change the values of Blank public variables, i was having two way of doing this one was to set each variable value manually or other is by using reflection, i did little Google, and then created a method that replace the value of each public variable of type string.

//this1 is the any class object and you want to replace the values of public string variables of this object
public void ReplaceBlankValues(object this1)
{
  //MemberInfo  array will hold all public variables of class
   MemberInfo[] properties = this1.GetType().GetMembers(BindingFlags.Public | BindingFlags.Instance);
            foreach (var property in properties)
            {
                if (property.ToString().Length > 13)
                {
                    string type = property.ToString().Substring(0, 13);

                    if (type == "System.String" && property.MemberType.ToString() != "Method")
                    {
                        Type typeInQuestion = this1.GetType();

                      //Field info containthe information of variable

                        FieldInfo field = typeInQuestion.GetField(property.Name);
                        string value = Convert.ToString(field.GetValue(this1));
                        if (value == "")
                        {
                         //Here i am replacing the value of field to "$nbsp;"
                        //In SetValue method you need to pass current object and the value to replace existing value

                            field.SetValue(this1, " ");
                        }

                    }
                }
            }
}

Comments

Popular posts from this blog

Insert, Delete Rows, columns in HTML table Using Javascript

Open source Social Networking site in Asp.net and Microsoft Ajax

Lite PromiseJS(Light weight JavaScript promise library)