记一次 .NET某账本软件 非托管泄露分析( 二 )

仔细分析卦中信息,可以很明显的看到 。

  • Json.Converters.PolymorphismConverter
看样子和牛顿有关系,并且还是一个自定义的 JsonConvert 。
  • IApiResult 和 IApiResultDynamicJsonConverter
看样子是一个接口的返回协议类,需要在代码中重点关注 。
【记一次 .NET某账本软件 非托管泄露分析】有了这些信息,接下来就是重点关注代码中的 PolymorphismConverter 类,果然就找到了一处 。
记一次 .NET某账本软件 非托管泄露分析

文章插图
图片
从类的定义来看,一般这种东西都是在 ConfigureServices 方法中做 初始化定义 的,按理说问题不大,那为什么会有问题呢?还得要查下它的引用,终于给找到了 , 截图如下:
记一次 .NET某账本软件 非托管泄露分析

文章插图
图片
这是一个低级错误哈,每次读取 ApiResult.Data 的时候都要 jsonSerializerOptions.AddPolymorphism(); 操作,也就每次都会创建程序集,终于真相大白 。
三:总结这种程序集泄露导致的生产事故不应该哈,反应了团队中多人协作的时候还是有待提高!




推荐阅读