我现在想解析一个对象(任意,结构未知)的字段值,若对象中包含结构体字段,如何判断这是一个结构体,并反射取得其结构体中各个字段的值???

解决方案 »

  1.   

    gettype().basetype;
    是否为valuetype,
      

  2.   

    结构只能继承接口,所以父类一定为valuetype
      

  3.   

    那和其他的值类型如何区分? 值类型有很多种啊,比如基本类型 int bool等??
      

  4.   


    曲线救国?
    Type上本来就有一个现成的方法:
    好像是IsValueType
      

  5.   

    那和其他的值类型如何区分? 值类型有很多种啊,比如基本类型 int bool等??
      

  6.   

    if (type.IsValueType || type == typeof(String))
                    {
                        retBuiler.Append(leftPad + type.FullName + seperator + fieldName + " = " + obj.ToString());
                        retBuiler.Append(System.Environment.NewLine);
                    }这样可以得到基本类型的字段值,但如果obj是 一个结构体的话,obj.ToString()只返回了类型,对于结构体中字段的值取不到。这里如何区分obj是基本类型还是结构体类型,并取得它们的值
      

  7.   

    IsValueType判断是不是之类型,IsPrimitive判断是不是基础类型(int之类的)
      

  8.   

    基本类型 int bool本来就是结构,你去看看定义,都是这样的:
    namespace System
    {
    public struct Int32
    {
    .......
    }
    }