第一个问题不重复。
公共类示例 { public VehicleEnum Keyword {get; set;} }
public enum VehicleEnum { CAR = 0 , BIKE = 1 };
object modelObject = Activator.CreateInstance("ModelAssembly", "ModelAssembly.Sample");
object propValue = modelObject.GetType().GetProperty("Keyword").GetValue(modelObject);
回答第一个问题。 : - ) 使用ObjectHandle并展开对象,而不是对象。
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();
}
}
答案 0 :(得分:1)
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());
答案 1 :(得分:-1)
您可以使用Convert.ChangeType(object, Type)
转换为任何所需类型,但如果您只对字符串类型感兴趣,则可以始终使用object.ToString()
要访问枚举的字符串表示形式,请使用Enum.GetNames(Type)