obj -> property
obj.gettype().getproperty
property->obj
info.setvalue(obj)
info.GetGetMethod().Invoke(obj, null);
先拿属性 然后调取他的get{} 方法
//对某个类进行实例化
object obj = Activator.CreateInstance(msg_type);
typeof(classA) == a.GetType()
Type type = a.GetType()
IsGenericType
泛型来说Typeof(List<ClassA>) Dictionary等
可以使用Type.IsGenericType 来判断是否是泛型类型
Convert.ChangeType
转换类型
SetValue
设置数据
propertyInfo.SetValue(parent, Convert.ChangeType(inputValue, propertyInfo.PropertyType), new object[] { Convert.ToInt32(prefix) });
设置list里面的某个数据,propertyInfo为 item的property
设置的时候parent是获取property的obj
type.GetGenericTypeDefinition() == typeof(List<>)
var item_type = type.GetGenericArguments()[0];
type.GetGenericTypeDefinition() == typeof(Dictionary<,>)
var generic_args_type = type.GetGenericArguments();
var key_type = generic_args_type[0];
var value_type = generic_args_type[1];
type.IsValueType
是不是int 等value
IsClass
是否是类
type == typeof(byte[])
是否是byte[]
if (DisplayFoldOut(obj, string.Format("{0} - {1}", prefix, type.Name)))
{
EditorGUI.indentLevel++;
foreach (var property in type.GetProperties())
C# 反射 和 设置数据
最新推荐文章于 2022-02-23 12:15:01 发布
本文详细探讨了C#中的反射机制,如何使用反射动态访问和操作类的属性、方法,以及如何利用反射进行数据的动态设置。通过实例解析,深入浅出地阐述了反射在实际开发中的应用和注意事项。
摘要由CSDN通过智能技术生成