使用反射访问属性的值

时间:2011-01-25 22:10:31

标签: c# reflection properties

我有一个对象,我想为对象中的每个属性编写xml元素,并将值作为字符串放在中间:

System.Type type = cabecera.GetType();
        System.Reflection.PropertyInfo[] propiedades = type.GetProperties();

        xml.WriteStartDocument();
        xml.WriteStartElement("Factura");
            xml.WriteStartElement("CABFAC"); //inicio de cabecera

            // imprime inicio valor y fin de elemento por cada propiedad del objeto
            foreach (System.Reflection.PropertyInfo propiedad in propiedades) 
            {
                xml.WriteStartElement(propiedad.Name); 
                xml.WriteString("value"); // here is the problem
                xml.WriteEndElement();
            }


            xml.WriteEndElement(); //fin de factura
        xml.WriteEndDocument();
        xml.Close();

如何更改propiedad.value x)的“值”

2 个答案:

答案 0 :(得分:2)

尝试:

xml.WriteString(propiedad.GetValue(cabecera, null).ToString());

答案 1 :(得分:0)

已经解决了男人

xml.WriteStartElement(propiedad.Name);                         object o = propiedad.GetValue(cabecera,null);                         if(o!= null)                             xml.WriteString(o.ToString()修剪());                         xml.WriteEndElement();