Open
Description
IDisposableAnalyzers version: 4.0.7
I have a scenario similar to this:
using System.Reactive;
using System.Reactive.Subjects;
namespace Demo;
internal sealed class Test
{
private IObservable<Unit> _eventTriggered = new Subject<Unit>();
public void Run()
{
using var foo = CreateFoo();
// ...
}
private Foo CreateFoo()
{
var foo = new Foo();
_eventTriggered.Subscribe(_ =>
{
// If the following line is commented, then no report of IDISP011:
foo.Dispose();
});
return foo; // IDISP011: Don't return disposed instance
}
sealed class Foo : IDisposable
{
public void Dispose() { /* ... */ }
}
}
foo
can be disposed in two places: by the owner (for example, inside Run()
method), or by some event, triggered somewhere else.
N.B.: Ignore other reports of IDISP004 or IDISP008, this is an example for IDISP011 only.
Metadata
Metadata
Assignees
Labels
No labels