How to satisfy CA2202 (Do not dispose objects multiple times)

前端 未结 2 1001
耶瑟儿~
耶瑟儿~ 2020-12-19 21:22

This question may seem to you duplicate of CA2202, how to solve this case which has an accepted answer. But you may realize that accepted answer has 5 down v

2条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-19 22:12

    Really, really, suppress the warning. The warning is wrong. It's okay to do. :-)

    Do a Google search for "CA2202 nested using" and you will find dozens of stackoverflow and MSDN forum posts on this issue. https://www.google.com/search?q=ca2202+nested+using

    Ultimately, CA2202 and CA2000 are limited because they can't understand the behavior of nested IDisposable objects. Some streams can be configured to leave the underlying stream open, but usually they don't. Suppression really is the correct solution. The problem is that you are trying to be a good citizen, so you are trying to comply with the warnings you are given. But static analysis just isn't smart enough to handle this.

提交回复
热议问题