幽梦紫曦

反射实例化并动态赋值

电脑版发表于:2022/4/21 16:09
Type type = typeof(User);  //获取类型
object a = Activator.CreateInstance(type);   //创建对象
foreach (var Prop in type.GetProperties())//GetProperties获取属性
{
    Console.WriteLine($"{type.Name}.{Prop.Name}={Prop.GetValue(a)}");
    if (Prop.Name.Equals("Id"))
    {
        Prop.SetValue(a, 213);//设置值
    }
    else if (Prop.Name.Equals("Name"))
    {
        Prop.SetValue(a, "张三");
    }
    Console.WriteLine($"{type.Name}.{Prop.Name}={Prop.GetValue(a)}");//获取值
}
foreach (var Field in type.GetFields())//GetFields获取字段
{
    Console.WriteLine($"{type.Name}.{Field.Name}={Field.GetValue(a)}");
    if (Field.Name.Equals("ClassID"))
    {
        Field.SetValue(a, "213");
    }
    Console.WriteLine($"{type.Name}.{Field.Name}={Field.GetValue(a)}");
}


public class UserInfo
{
    public string UserName { get; set; }
}
//反射实例化并赋值
Type type = typeof(UserInfo);
object user = Activator.CreateInstance(type);
foreach (var Prop in type.GetProperties())//GetProperties获取属性
{
    Console.WriteLine($"{type.Name}.{Prop.Name}={Prop.GetValue(user)}");
    if (Prop.Name.Equals("UserName"))
    {
        Prop.SetValue(user, "张三");
    }
    Console.WriteLine($"{type.Name}.{Prop.Name}={Prop.GetValue(user)}");//获取值
}


关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢