diff --git a/src/CsvHelper/CsvHelper.csproj b/src/CsvHelper/CsvHelper.csproj
index 804f98a56..4f9442b92 100644
--- a/src/CsvHelper/CsvHelper.csproj
+++ b/src/CsvHelper/CsvHelper.csproj
@@ -49,6 +49,13 @@
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
diff --git a/src/CsvHelper/CsvParser.cs b/src/CsvHelper/CsvParser.cs
index 83ad97b22..5b7e30cb5 100644
--- a/src/CsvHelper/CsvParser.cs
+++ b/src/CsvHelper/CsvParser.cs
@@ -13,7 +13,7 @@ namespace CsvHelper;
///
/// Parses a CSV file.
///
-public class CsvParser : IParser, IDisposable
+public partial class CsvParser : IParser, IDisposable
{
private readonly IParserConfiguration configuration;
private readonly FieldCache fieldCache = new FieldCache();
@@ -204,42 +204,9 @@ public CsvParser(TextReader reader, IParserConfiguration configuration, bool lea
processedFields = new string[128];
}
- ///
- public bool Read()
- {
- isRecordProcessed = false;
- rowStartPosition = bufferPosition;
- fieldStartPosition = rowStartPosition;
- fieldsPosition = 0;
- quoteCount = 0;
- row++;
- rawRow++;
- var c = '\0';
- var cPrev = c;
-
- while (true)
- {
- if (bufferPosition >= charsRead)
- {
- if (!FillBuffer())
- {
- return ReadEndOfFile();
- }
-
- if (row == 1 && detectDelimiter)
- {
- DetectDelimiter();
- }
- }
-
- if (ReadLine(ref c, ref cPrev) == ReadLineResult.Complete)
- {
- return true;
- }
- }
- }
///
+ [Zomp.SyncMethodGenerator.CreateSyncVersion]
public async Task ReadAsync()
{
isRecordProcessed = false;
diff --git a/src/CsvHelper/CsvReader.cs b/src/CsvHelper/CsvReader.cs
index 3fa74c2a0..ef12d777e 100644
--- a/src/CsvHelper/CsvReader.cs
+++ b/src/CsvHelper/CsvReader.cs
@@ -14,7 +14,7 @@ namespace CsvHelper;
///
/// Reads data that was parsed from .
///
-public class CsvReader : IReader
+public partial class CsvReader : IReader
{
private readonly Lazy recordManager;
private readonly bool detectColumnCountChanges;
@@ -237,41 +237,9 @@ protected virtual void ValidateHeader(ClassMap map, List invalidH
}
}
- ///
- public virtual bool Read()
- {
- // Don't forget about the async method below!
-
- bool hasMoreRecords;
- do
- {
- hasMoreRecords = parser.Read();
- hasBeenRead = true;
- }
- while (hasMoreRecords && (shouldSkipRecord?.Invoke(new ShouldSkipRecordArgs(this)) ?? false));
-
- currentIndex = -1;
-
- if (detectColumnCountChanges && hasMoreRecords)
- {
- if (prevColumnCount > 0 && prevColumnCount != parser.Count)
- {
- var csvException = new BadDataException(string.Empty, parser.RawRecord, context, "An inconsistent number of columns has been detected.");
-
- var args = new ReadingExceptionOccurredArgs(csvException);
- if (readingExceptionOccurred?.Invoke(args) ?? true)
- {
- throw csvException;
- }
- }
-
- prevColumnCount = parser.Count;
- }
-
- return hasMoreRecords;
- }
///
+ [Zomp.SyncMethodGenerator.CreateSyncVersion]
public virtual async Task ReadAsync()
{
bool hasMoreRecords;
diff --git a/src/CsvHelper/CsvWriter.cs b/src/CsvHelper/CsvWriter.cs
index d74da342d..a8249bac7 100644
--- a/src/CsvHelper/CsvWriter.cs
+++ b/src/CsvHelper/CsvWriter.cs
@@ -20,7 +20,7 @@ namespace CsvHelper;
///
/// Used to write CSV files.
///
-public class CsvWriter : IWriter
+public partial class CsvWriter : IWriter
{
private readonly TextWriter writer;
private readonly CsvContext context;
@@ -346,119 +346,9 @@ public virtual void WriteRecord(T? record)
}
}
- ///
- public virtual void WriteRecords(IEnumerable records)
- {
- // Changes in this method require changes in method WriteRecords(IEnumerable records) also.
-
- var enumerator = records.GetEnumerator();
-
- try
- {
- if (!enumerator.MoveNext())
- {
- return;
- }
-
- if (WriteHeaderFromRecord(enumerator.Current))
- {
- NextRecord();
- }
-
- Action