字符串变量名称

字符串变量名称

问题描述:

我有类(客户),持有超过200字符串变量财产。我使用的密钥和值的参数法。我试图从供给xml文件键和值。对于这一点,值必须通过客户类的属性(字符串变量)取代。

I have class(Customer) which holds more than 200 string variables as property. I'm using method with parameter of key and value. I trying to supply key and value from xml file. For this, value has to be substituted by Customer class's property(string variables).

Customer
{
  public string Name{return _name};

  public string Address{return _address};
}


CallInput
{
  StringTempelate tempelate = new StringTempelate();
  foreach(item in items)
  tempelate .SetAttribure(item.key, item.Value -->   //Say this value is Name, so it has to substitute Customer.Name
}

这可能吗?

您可以使用反射按名称设置属性。

You can use reflection to set the properties 'by name'.

using System.Reflection;
...
myCustomer.GetType().GetProperty(item.Key).SetValue(myCustomer, item.Value, null);

您也可以阅读的GetValue属性,或得到使用的GetType所有属性名的列表()的GetProperties(),它返回的PropertyInfo数组(Name属性包含属性名称)

You can also read the properties with GetValue, or get a list of all property names using GetType().GetProperties(), which returns an array of PropertyInfo (the Name property contains the properties name)