Yup:
Type type = typeof(Form); // Or use Type.GetType, etc
foreach (PropertyInfo property in type.GetProperties())
{
// Do stuff with property
}
này sẽ không cung cấp cho họ như cặp khóa/giá trị, nhưng bạn có thể nhận được tất cả các loại thông tin từ một PropertyInfo
.
Lưu ý rằng điều này sẽ chỉ cung cấp các thuộc tính công khai. Đối với những người không công khai, bạn muốn sử dụng tình trạng quá tải phải mất BindingFlags
. Nếu bạn thực sự muốn chỉ tên/cặp giá trị cho các thuộc tính thể hiện của một trường hợp cụ thể, bạn có thể làm điều gì đó như:
var query = foo.GetType()
.GetProperties(BindingFlags.Public |
BindingFlags.Instance)
// Ignore indexers for simplicity
.Where(prop => !prop.GetIndexParameters().Any())
.Select(prop => new { Name = prop.Name,
Value = prop.GetValue(foo, null) });
foreach (var pair in query)
{
Console.WriteLine("{0} = {1}", pair.Name, pair.Value);
}
Nguồn
2010-10-24 19:21:33
Cảm ơn Jon, đã làm việc hoàn hảo. – SLoret