Refactor Excel writers and readers for performance and limit handling #23
benchmark-pr.yml
on: pull_request
Matrix: benchmark
Post PR Comment
4s
Annotations
50 warnings
|
|
|
Run (xls-read):
src/ExcelReader.Core/Writer/SheetWriter.cs#L21
Disposable field _rowWriter in type SheetWriter is not disposed (https://github.com/Vannevelj/SharpSource/blob/master/docs/SS066-DisposableFieldIsNotDisposed.md)
|
|
Run (xls-read):
src/ExcelReader.Core/Reader/XlsbReader.Enumerator.cs#L23
'Enumerator' contains field '_reader' that is of IDisposable type 'XlsbReader', but it is never disposed. Change the Dispose method on 'Enumerator' to call Close or Dispose on this field. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2213)
|
|
Run (xls-read):
src/ExcelReader.Core/Reader/XlsReader.cs#L121
Call System.IDisposable.Dispose on object created by 'GetAsyncEnumerator(ct)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (xls-read):
src/ExcelReader.Core/Reader/XlsReader.cs#L116
Call System.IDisposable.Dispose on object created by 'new Enumerator(this, _sheets[_current].Offset, ct)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (xls-read):
src/ExcelReader.Core/Reader/XlsReader.cs#L121
'XlsReader.GetAsyncEnumerator(CancellationToken)' synchronously blocks. Await 'XlsReader.GetAsyncEnumeratorAsync(CancellationToken)' instead. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1849)
|
|
Run (xls-read):
src/ExcelReader.Core/Writer/SheetWriter.cs#L85
Use "Async" suffix in names of methods that return an awaitable type (https://microsoft.github.io/vs-threading/analyzers/VSTHRD200.html)
|
|
Run (xls-read):
src/ExcelReader.Core/Writer/XlsbSheetWriter.cs#L167
Dispose previous before re-assigning (https://github.com/DotNetAnalyzers/IDisposableAnalyzers/blob/master/documentation/IDISP003.md)
|
|
Run (xls-read):
src/ExcelReader.Core/Writer/XlsbSheetWriter.cs#L65
Call System.IDisposable.Dispose on object created by 'new XlsbRowWriter(this, _date1904)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (xls-read):
src/ExcelReader.Core/Parser/Internal/ExcelEnumerable.cs#L125
Method 'ExcelReader.Core.Parser.Internal.ExcelEnumerable<T, TReader, TEnumerator>.AsyncEnumerator.AsyncEnumerator(TReader, ExcelReader.Core.Parser.Internal.TypeMapInfo<T>, System.StringComparer, ExcelReader.Core.Parser.HeaderNormalization, int, System.Threading.CancellationToken, System.IFormatProvider)' should take CancellationToken as the last parameter (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1068)
|
|
|
|
Run (xls-write):
src/ExcelReader.Core/Writer/SheetWriter.cs#L21
Disposable field _rowWriter in type SheetWriter is not disposed (https://github.com/Vannevelj/SharpSource/blob/master/docs/SS066-DisposableFieldIsNotDisposed.md)
|
|
Run (xls-write):
src/ExcelReader.Core/Reader/XlsbReader.Enumerator.cs#L23
'Enumerator' contains field '_reader' that is of IDisposable type 'XlsbReader', but it is never disposed. Change the Dispose method on 'Enumerator' to call Close or Dispose on this field. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2213)
|
|
Run (xls-write):
src/ExcelReader.Core/Reader/XlsReader.cs#L121
Call System.IDisposable.Dispose on object created by 'GetAsyncEnumerator(ct)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (xls-write):
src/ExcelReader.Core/Reader/XlsReader.cs#L121
'XlsReader.GetAsyncEnumerator(CancellationToken)' synchronously blocks. Await 'XlsReader.GetAsyncEnumeratorAsync(CancellationToken)' instead. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1849)
|
|
Run (xls-write):
src/ExcelReader.Core/Reader/XlsReader.cs#L116
Call System.IDisposable.Dispose on object created by 'new Enumerator(this, _sheets[_current].Offset, ct)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (xls-write):
src/ExcelReader.Core/Writer/SheetWriter.cs#L85
Use "Async" suffix in names of methods that return an awaitable type (https://microsoft.github.io/vs-threading/analyzers/VSTHRD200.html)
|
|
|
|
Run (xls-write):
src/ExcelReader.Core/Writer/XlsbSheetWriter.cs#L65
Call System.IDisposable.Dispose on object created by 'new XlsbRowWriter(this, _date1904)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (xls-write):
src/ExcelReader.Core/Parser/Internal/ExcelEnumerable.cs#L125
Method 'ExcelReader.Core.Parser.Internal.ExcelEnumerable<T, TReader, TEnumerator>.AsyncEnumerator.AsyncEnumerator(TReader, ExcelReader.Core.Parser.Internal.TypeMapInfo<T>, System.StringComparer, ExcelReader.Core.Parser.HeaderNormalization, int, System.Threading.CancellationToken, System.IFormatProvider)' should take CancellationToken as the last parameter (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1068)
|
|
|
|
Run (write):
src/ExcelReader.Core/Writer/SheetWriter.cs#L21
Disposable field _rowWriter in type SheetWriter is not disposed (https://github.com/Vannevelj/SharpSource/blob/master/docs/SS066-DisposableFieldIsNotDisposed.md)
|
|
Run (write):
src/ExcelReader.Core/Reader/XlsbReader.Enumerator.cs#L23
'Enumerator' contains field '_reader' that is of IDisposable type 'XlsbReader', but it is never disposed. Change the Dispose method on 'Enumerator' to call Close or Dispose on this field. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2213)
|
|
Run (write):
src/ExcelReader.Core/Writer/XlsbSheetWriter.cs#L167
Dispose previous before re-assigning (https://github.com/DotNetAnalyzers/IDisposableAnalyzers/blob/master/documentation/IDISP003.md)
|
|
Run (write):
src/ExcelReader.Core/Reader/XlsReader.cs#L121
Call System.IDisposable.Dispose on object created by 'GetAsyncEnumerator(ct)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (write):
src/ExcelReader.Core/Reader/XlsReader.cs#L121
'XlsReader.GetAsyncEnumerator(CancellationToken)' synchronously blocks. Await 'XlsReader.GetAsyncEnumeratorAsync(CancellationToken)' instead. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1849)
|
|
Run (write):
src/ExcelReader.Core/Reader/XlsReader.cs#L116
Call System.IDisposable.Dispose on object created by 'new Enumerator(this, _sheets[_current].Offset, ct)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (write):
src/ExcelReader.Core/Writer/XlsbSheetWriter.cs#L65
Call System.IDisposable.Dispose on object created by 'new XlsbRowWriter(this, _date1904)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (write):
src/ExcelReader.Core/Writer/SheetWriter.cs#L85
Use "Async" suffix in names of methods that return an awaitable type (https://microsoft.github.io/vs-threading/analyzers/VSTHRD200.html)
|
|
Run (write):
src/ExcelReader.Core/Parser/Internal/ExcelEnumerable.cs#L125
Method 'ExcelReader.Core.Parser.Internal.ExcelEnumerable<T, TReader, TEnumerator>.AsyncEnumerator.AsyncEnumerator(TReader, ExcelReader.Core.Parser.Internal.TypeMapInfo<T>, System.StringComparer, ExcelReader.Core.Parser.HeaderNormalization, int, System.Threading.CancellationToken, System.IFormatProvider)' should take CancellationToken as the last parameter (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1068)
|
|
|
|
Run (read):
src/ExcelReader.Core/Writer/SheetWriter.cs#L21
Disposable field _rowWriter in type SheetWriter is not disposed (https://github.com/Vannevelj/SharpSource/blob/master/docs/SS066-DisposableFieldIsNotDisposed.md)
|
|
Run (read):
src/ExcelReader.Core/Reader/XlsbReader.Enumerator.cs#L23
'Enumerator' contains field '_reader' that is of IDisposable type 'XlsbReader', but it is never disposed. Change the Dispose method on 'Enumerator' to call Close or Dispose on this field. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2213)
|
|
Run (read):
src/ExcelReader.Core/Reader/XlsReader.cs#L121
Call System.IDisposable.Dispose on object created by 'GetAsyncEnumerator(ct)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (read):
src/ExcelReader.Core/Reader/XlsReader.cs#L121
'XlsReader.GetAsyncEnumerator(CancellationToken)' synchronously blocks. Await 'XlsReader.GetAsyncEnumeratorAsync(CancellationToken)' instead. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1849)
|
|
Run (read):
src/ExcelReader.Core/Reader/XlsReader.cs#L116
Call System.IDisposable.Dispose on object created by 'new Enumerator(this, _sheets[_current].Offset, ct)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (read):
src/ExcelReader.Core/Writer/SheetWriter.cs#L85
Use "Async" suffix in names of methods that return an awaitable type (https://microsoft.github.io/vs-threading/analyzers/VSTHRD200.html)
|
|
Run (read):
src/ExcelReader.Core/Writer/XlsbSheetWriter.cs#L167
Dispose previous before re-assigning (https://github.com/DotNetAnalyzers/IDisposableAnalyzers/blob/master/documentation/IDISP003.md)
|
|
Run (read):
src/ExcelReader.Core/Writer/XlsbSheetWriter.cs#L65
Call System.IDisposable.Dispose on object created by 'new XlsbRowWriter(this, _date1904)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (read):
src/ExcelReader.Core/Parser/Internal/ExcelEnumerable.cs#L125
Method 'ExcelReader.Core.Parser.Internal.ExcelEnumerable<T, TReader, TEnumerator>.AsyncEnumerator.AsyncEnumerator(TReader, ExcelReader.Core.Parser.Internal.TypeMapInfo<T>, System.StringComparer, ExcelReader.Core.Parser.HeaderNormalization, int, System.Threading.CancellationToken, System.IFormatProvider)' should take CancellationToken as the last parameter (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1068)
|
|
|
|
Run (parse):
src/ExcelReader.Core/Writer/SheetWriter.cs#L21
Disposable field _rowWriter in type SheetWriter is not disposed (https://github.com/Vannevelj/SharpSource/blob/master/docs/SS066-DisposableFieldIsNotDisposed.md)
|
|
Run (parse):
src/ExcelReader.Core/Reader/XlsbReader.Enumerator.cs#L23
'Enumerator' contains field '_reader' that is of IDisposable type 'XlsbReader', but it is never disposed. Change the Dispose method on 'Enumerator' to call Close or Dispose on this field. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2213)
|
|
Run (parse):
src/ExcelReader.Core/Writer/XlsbSheetWriter.cs#L167
Dispose previous before re-assigning (https://github.com/DotNetAnalyzers/IDisposableAnalyzers/blob/master/documentation/IDISP003.md)
|
|
Run (parse):
src/ExcelReader.Core/Reader/XlsReader.cs#L121
Call System.IDisposable.Dispose on object created by 'GetAsyncEnumerator(ct)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (parse):
src/ExcelReader.Core/Reader/XlsReader.cs#L121
'XlsReader.GetAsyncEnumerator(CancellationToken)' synchronously blocks. Await 'XlsReader.GetAsyncEnumeratorAsync(CancellationToken)' instead. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1849)
|
|
Run (parse):
src/ExcelReader.Core/Reader/XlsReader.cs#L116
Call System.IDisposable.Dispose on object created by 'new Enumerator(this, _sheets[_current].Offset, ct)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (parse):
src/ExcelReader.Core/Writer/XlsbSheetWriter.cs#L65
Call System.IDisposable.Dispose on object created by 'new XlsbRowWriter(this, _date1904)' before all references to it are out of scope (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
|
Run (parse):
src/ExcelReader.Core/Writer/SheetWriter.cs#L85
Use "Async" suffix in names of methods that return an awaitable type (https://microsoft.github.io/vs-threading/analyzers/VSTHRD200.html)
|
|
Run (parse):
src/ExcelReader.Core/Parser/Internal/ExcelEnumerable.cs#L125
Method 'ExcelReader.Core.Parser.Internal.ExcelEnumerable<T, TReader, TEnumerator>.AsyncEnumerator.AsyncEnumerator(TReader, ExcelReader.Core.Parser.Internal.TypeMapInfo<T>, System.StringComparer, ExcelReader.Core.Parser.HeaderNormalization, int, System.Threading.CancellationToken, System.IFormatProvider)' should take CancellationToken as the last parameter (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1068)
|