C#获取对象属性

  • .NET Framework提供了两种方法来访问类型上的元数据:命名空间中System.Reflection提供的反射 API 和TypeDescriptor类。 反射是适用于所有类型的通用机制,因为它的基础是在根Object类的方法中建立的GetType。 它为类型返回的信息不可扩展,因为它无法在目标类型的编译后对其进行修改。
  • 中望CAD的自定义实体,在正常的获取属性用反射的方法是获取不了了,中望也没有给出说明,折腾了一天,终于重网上看到可以用这种方法获取得了。
    DBObject brf =(DBObject)trans.GetObject(entId, OpenMode.ForRead);
    object obj= brf.ZcadObject;
    foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(obj))
    {
        string name = descriptor.Name;
        object val = descriptor.GetValue(obj);
        Console.WriteLine("name:{0}=value:{1}", name, val);
    }
    //反射获取得到的值是空值
    //var str1= obj.GetType().GetProperty("TextCont").GetValue(obj);
  • 具体说明看微软官方文档:https://docs.microsoft.com/zh-cn/dotnet/api/system.componentmodel.typedescriptor?view=net-6.0
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值