Reflection : Convert the returned property value based on Property Data Type
本问题已经有最佳答案,请猛点这里访问。
第一个问题不重复。
公共类样本{public vehicleenum关键字get;set;}
1 | public enum VehicleEnum { CAR = 0 , BIKE = 1 }; |
1 2 | object modelObject = Activator.CreateInstance("ModelAssembly","ModelAssembly.Sample"); object propValue = modelObject.GetType().GetProperty("Keyword").GetValue(modelObject); |
回答第一个问题。-)使用ObjectHandle和Unwrap对象代替对象。
1 2 3 4 5 6 7 8 9 10 11 | ObjectHandle modelObject = Activator.CreateInstance("ModelAssembly","ModelAssembly.Sample"); if (modelObject != null) { PropertyInfo memInfo = modelObject.Unwrap().GetType().GetProperty("Keyword", BindingFlags.Public | BindingFlags.Instance); if (memInfo != null) { object value = memInfo.GetValue(modelObject.Unwrap()); if (value != null) propertyValue = value.ToString(); } } |
1 2 3 4 5 6 7 | var property = modelObject.GetType().GetProperty("Keyword"); var propValue = property.GetValue(modelObject); foreach (var s in Enum.GetNames(property.PropertyType)) Console.WriteLine(s); Console.WriteLine(propValue.ToString()); |
您可以使用
要访问枚举的字符串表示形式,请使用