【发布时间】:2016-12-01 15:56:54
【问题描述】:
例如,我从加载的程序集中读取类型:
var someType = loadedAssemblies
.Where(a => a != null && a.FullName.StartsWith("MY."))
.SelectMany(a => a.GetTypes())
.Distinct()
.ToArray()[0];
如果 counstructor 有参数,我可以读取它们:
ParameterInfo[] parameters = classType.GetConstructors()[0].GetParameters();
我想用默认参数值调用构造函数,或者如果参数是枚举,则使用第一个枚举值。 如果只有一个参数并且是枚举,它的工作原理是这样的:
object curObject = Activator.CreateInstance(classType, new object[] { parameters[0].ParameterType.GetEnumValues().GetValue(0) });
当有更多参数时,我该怎么做? 我需要创建对象来读取属性:
var propertyInfo = someType.GetProperty("EntityType");
string entityType = propertyInfo.GetValue(curObject, null).ToString();
【问题讨论】:
标签: c# reflection enums