首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[工具推荐]Dumpify --通过向控制台应用程序添加扩展方法来提高工作效率和可调试性

[工具推荐]Dumpify --通过向控制台应用程序添加扩展方法来提高工作效率和可调试性

作者头像
科控物联
发布2023-10-17 15:16:36
发布2023-10-17 15:16:36
3620
举报
文章被收录于专栏:科控自动化科控自动化

VS插件Dumpify

代码语言:javascript
复制
dotnet add package Dumpify --version 0.6.0

特征

  • 以结构化、彩色的方式将任何对象转储到控制台、调试、跟踪或任何其他自定义输出
  • 支持属性、字段和非公共成员
  • 支持最大嵌套级别
  • 支持循环依赖和引用
  • 支持样式和自定义
  • 高度可配置
  • 支持不同的输出目标:控制台、跟踪、调试、文本、自定义
  • 快!

例子:

匿名类型

代码语言:javascript
复制
new { Name = "Dumpify", Description = "Dump any object to Console" }.Dump();
支持嵌套和循环引用
代码语言:javascript
复制
var moaid = new Person { FirstName = "Moaid", LastName = "Hathot", Profession = Profession.Software };
var haneeni = new Person { FirstName = "Haneeni", LastName = "Shibli", Profession = Profession.Health };

moaid.Spouse = haneeni;
haneeni.Spouse = moaid;

moaid.Dump();
//You can define max depth as well, e.g `moaid.Dump(maxDepth: 2)`
支持数组、字典和集合
代码语言:javascript
复制
var arr = new[] { 1, 2, 3, 4 }.Dump();
代码语言:javascript
复制
var arr2d = new int[,] { {1, 2}, {3, 4} }.Dump();
代码语言:javascript
复制
new Dictionary<string, string>
{
    ["Moaid"] = "Hathot",
    ["Haneeni"] = "Shibli",
    ["Eren"] = "Yeager",
    ["Mikasa"] = "Ackerman",
}.Dump();
您可以打开或关闭字段和私有成员
代码语言:javascript
复制
public class AdditionValue
{
    private readonly int _a;
    private readonly int _b;

    public AdditionValue(int a, int b)
    {
        _a = a;
        _b = b;
    }

    private int Value => _a + _b;
}


new AdditionValue(1, 2).Dump(members: new MembersConfig { IncludeFields = true, IncludeNonPublicMembers = true });
您可以自定义颜色
代码语言:javascript
复制
var package = new { Name = "Dumpify", Description = "Dump any object to Console" };
package.Dump(colors: ColorConfig.NoColors);
package.Dump(colors: new ColorConfig { PropertyValueColor = new DumpColor(Color.RoyalBlue)});
您可以打开或关闭类型名称,标题,标签等
代码语言:javascript
复制
var moaid = new Person { FirstName = "Moaid", LastName = "Hathot", Profession = Profession.Software };
var haneeni = new Person { FirstName = "Haneeni", LastName = "Shibli", Profession = Profession.Health };
moaid.Spouse = haneeni;
haneeni.Spouse = moaid;

moaid.Dump(typeNames: new TypeNamingConfig { ShowTypeNames = false }, tableConfig: new TableConfig { ShowTableHeaders = false });
有多个输出选项(控制台、跟踪、调试、文本)或提供您自己的输出选项
代码语言:javascript
复制
var package = new { Name = "Dumpify", Description = "Dump any object to Console" };
package.Dump(); //Similar to `package.DumpConsole()` and `package.Dump(output: Outputs.Console))`
package.DumpDebug(); //Dump to Visual Studio's Debug source
package.DumpTrace(); //Dump to Trace 
var text = package.DumpText(); //The table in a text format

using var writer = new StringWriter();
package.Dump(output: new DumpOutput(writer)); //Custom output
每个配置都可以按转储定义,也可以为所有转储全局定义,例如:
代码语言:javascript
复制
DumpConfig.Default.TypeNamingConfig.UseAliases = true;
DumpConfig.Default.TypeNamingConfig.ShowTypeNames = false;
DumpConfig.Default.ColorConfig.TypeNameColor = Color.Gold;
DumpConfig.Default.MaxDepth = 3;
//Much more...
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • VS插件Dumpify
  • 特征
  • 例子:
    • 匿名类型
      • 支持嵌套和循环引用
      • 支持数组、字典和集合
      • 您可以打开或关闭字段和私有成员
      • 您可以自定义颜色
      • 您可以打开或关闭类型名称,标题,标签等
      • 有多个输出选项(控制台、跟踪、调试、文本)或提供您自己的输出选项
      • 每个配置都可以按转储定义,也可以为所有转储全局定义,例如:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档