如何在C#中迭代对象的所有属性?
我是C#的新手,我想编写一个函数来迭代一个对象的属性并将所有空字符串设置为“”。 我听说有可能使用一种叫做“reflection”的东西,但我不知道怎么做。
谢谢
public class Foo { public string Prop1 { get; set; } public string Prop2 { get; set; } public int Prop3 { get; set; } } class Program { static void Main(string[] args) { var foo = new Foo(); // Use reflection to get all string properties // that have getters and setters var properties = from p in typeof(Foo).GetProperties() where p.PropertyType == typeof(string) && p.CanRead && p.CanWrite select p; foreach (var property in properties) { var value = (string)property.GetValue(foo, null); if (value == null) { property.SetValue(foo, string.Empty, null); } } // at this stage foo should no longer have null string properties } }
foreach(PropertyInfo pi in myobject.GetType().GetProperties(BindingFlags.Public)) { if (pi.GetValue(myobject)==null) { // do something } }
对象myObject; PropertyInfo [] properties = myObject.GetType()。GetProperties(BindingFlags.Instance);
请参阅http://msdn.microsoft.com/en-us/library/aa332493(VS.71).aspx