• 调试用对象输出


    编写程序跟踪输出时,有时候需要输出某个对象所有字段和属性的值,类似于Watch。如果只有一个两个类的对象,事情并不麻烦,但是如果有很多类的对象,那么单独写就很费时。鉴于此,我写了一个通用的对象转储输出类,用于针对绝大多数对象进行转储为字符串形式。

    Code

    不同的ObjectDumpOptions指示不同的输出格式:

    Fields:转储字段

    Properties:转储属性

    NonPublic:转储非公共成员(字段、属性等)

    Static:转储静态成员(如选择此选项,则实例成员不会包括的输出中)

    Recursive:递归转储所有内含的类型(如不包含此项,则仅转储直接成员)

    ExpandArray:扩展所有数组元素(如不包含此项,则仅输出数组的元素类型以及元素数量

    WithType:输出结果中包含字段或属性的类型名

    UsingFullTypeName:使用完整的类型名(包含名字空间)

    UsingTypeKeywords:使用C#的关键字来代替部分内置类型,如int表示Int32

    WithName:输出结果中包含字段或属性的名称

    SingleLine:单行输出(如果不包含此项,则会适当分行)

    NullIsNull:如果输入对象是null,则转储结果为null,否则转储结果为字符串“<null>”

    Default,DefaultBrief,DefaultBriefMultiLines:包括一些常用的选项。

    DumpObject函数用于转储一个对象,DumpMethod函数用于转储一个方法的调用。对于下面这个程序:

    Code

    输出的结果是:

    (Test)[
      m_field = (int)100,
      Property = (int)100
    ]

  • 相关阅读:
    异常测试之Socket网络异常
    关于文件的INode与Java中的文件操作接口
    java程序中获取kerberos登陆hadoop
    团队游戏的那些事
    细说内测
    如何搭建视频转码集群、播放服务器
    PropertyPlaceHolderConfigurer中的location是不是用错了?
    浅谈java classloader
    foreach写失效的问题
    ArcGIS中的WKID
  • 原文地址:https://www.cnblogs.com/xlshcn/p/objectdump.html
Copyright © 2020-2023  润新知