diff --git a/src/CsvHelper.Tests/AutoMapping/AutoMappingTests.cs b/src/CsvHelper.Tests/AutoMapping/AutoMappingTests.cs index 7fe7ea3f9..2e24b11ee 100644 --- a/src/CsvHelper.Tests/AutoMapping/AutoMappingTests.cs +++ b/src/CsvHelper.Tests/AutoMapping/AutoMappingTests.cs @@ -214,7 +214,7 @@ public void AutoMapWithExistingMapTest() var map = config.AutoMap( data.GetType() ); Assert.IsNotNull( map ); - Assert.AreEqual( 0, map.PropertyMaps.Count ); + Assert.AreEqual( 0, map.MemberMaps.Count ); Assert.AreEqual( 1, map.ReferenceMaps.Count ); // Since Simple is a reference on the anonymous object, the type won't @@ -231,10 +231,10 @@ public void AutoMapWithNestedHeaders() PrefixReferenceHeaders = true, }; var map = config.AutoMap(); - Assert.AreEqual( "Simple1.Id", map.ReferenceMaps[0].Data.Mapping.PropertyMaps[0].Data.Names[0] ); - Assert.AreEqual( "Simple1.Name", map.ReferenceMaps[0].Data.Mapping.PropertyMaps[1].Data.Names[0] ); - Assert.AreEqual( "Simple2.Id", map.ReferenceMaps[1].Data.Mapping.PropertyMaps[0].Data.Names[0] ); - Assert.AreEqual( "Simple2.Name", map.ReferenceMaps[1].Data.Mapping.PropertyMaps[1].Data.Names[0] ); + Assert.AreEqual( "Simple1.Id", map.ReferenceMaps[0].Data.Mapping.MemberMaps[0].Data.Names[0] ); + Assert.AreEqual( "Simple1.Name", map.ReferenceMaps[0].Data.Mapping.MemberMaps[1].Data.Names[0] ); + Assert.AreEqual( "Simple2.Id", map.ReferenceMaps[1].Data.Mapping.MemberMaps[0].Data.Names[0] ); + Assert.AreEqual( "Simple2.Name", map.ReferenceMaps[1].Data.Mapping.MemberMaps[1].Data.Names[0] ); } private class Nested diff --git a/src/CsvHelper.Tests/AutoMapping/CircularReferenceTests.cs b/src/CsvHelper.Tests/AutoMapping/CircularReferenceTests.cs index 08cd58405..1f19af252 100644 --- a/src/CsvHelper.Tests/AutoMapping/CircularReferenceTests.cs +++ b/src/CsvHelper.Tests/AutoMapping/CircularReferenceTests.cs @@ -12,9 +12,9 @@ public void CircularDependencyTest() var config = new CsvHelper.Configuration.Configuration(); var map = config.AutoMap(); Assert.IsNotNull( map ); - Assert.AreEqual( 1, map.PropertyMaps.Count ); + Assert.AreEqual( 1, map.MemberMaps.Count ); Assert.AreEqual( 1, map.ReferenceMaps.Count ); - Assert.AreEqual( 1, map.ReferenceMaps[0].Data.Mapping.PropertyMaps.Count ); + Assert.AreEqual( 1, map.ReferenceMaps[0].Data.Mapping.MemberMaps.Count ); Assert.AreEqual( 0, map.ReferenceMaps[0].Data.Mapping.ReferenceMaps.Count ); } @@ -23,7 +23,7 @@ public void CircularDependencyWithMultiplePropertiesTest() { var config = new CsvHelper.Configuration.Configuration(); var map = config.AutoMap(); - Assert.AreEqual( 1, map.PropertyMaps.Count ); + Assert.AreEqual( 1, map.MemberMaps.Count ); Assert.AreEqual( 3, map.ReferenceMaps.Count ); } diff --git a/src/CsvHelper.Tests/Configuration/ClassMapBuilderTests.cs b/src/CsvHelper.Tests/Configuration/ClassMapBuilderTests.cs index 4e232c19d..fac6e5f02 100644 --- a/src/CsvHelper.Tests/Configuration/ClassMapBuilderTests.cs +++ b/src/CsvHelper.Tests/Configuration/ClassMapBuilderTests.cs @@ -60,32 +60,32 @@ public class ClassMapBuilderTests [TestMethod] public void ClassMapBuilderAddsPropertyMapsCorrectly() { - Assert.AreEqual( 5, map.PropertyMaps.Count );//IMappable + Assert.AreEqual( 5, map.MemberMaps.Count );//IMappable } [TestMethod] public void ClassMapBuilderAddsTypeConvertersCorrectly() { - Assert.AreEqual( typeof( DateTimeConverter ), map.PropertyMaps[2].Data.TypeConverter.GetType() );//2 - Assert.AreEqual( typeof( DoubleConverter ), map.PropertyMaps[3].Data.TypeConverter.GetType() );//2 + Assert.AreEqual( typeof( DateTimeConverter ), map.MemberMaps[2].Data.TypeConverter.GetType() );//2 + Assert.AreEqual( typeof( DoubleConverter ), map.MemberMaps[3].Data.TypeConverter.GetType() );//2 } [TestMethod] public void ClassMapBuilderAddsIndexesCorrectly() { - Assert.AreEqual( 2, map.PropertyMaps[2].Data.Index ); //3 + Assert.AreEqual( 2, map.MemberMaps[2].Data.Index ); //3 } [TestMethod] public void ClassMapBuilderAddsNamesCorrectly() { - Assert.AreEqual( "D4", map.PropertyMaps[3].Data.Names.Single() ); //4 + Assert.AreEqual( "D4", map.MemberMaps[3].Data.Names.Single() ); //4 } [TestMethod] public void ClassMapBuilderAddsNameIndexesCorrectly() { - Assert.AreEqual( 2, map.PropertyMaps[0].Data.NameIndex ); //5 + Assert.AreEqual( 2, map.MemberMaps[0].Data.NameIndex ); //5 } //this one is kind of hacky, but i'm not sure how else to test it more robustly since the function gets converted to an expression inside the CsvClassMap @@ -93,14 +93,14 @@ public void ClassMapBuilderAddsNameIndexesCorrectly() public void ClassMapBuilderAddsConvertUsingFunctionCorectly() { var fakeRow = new BuilderRowFake(); - Assert.AreEqual( ConvertExpression( fakeRow ).E, ( map.PropertyMaps[4].Data.ReadingConvertExpression as Expression> ).Compile()( fakeRow ).E ); //6 + Assert.AreEqual( ConvertExpression( fakeRow ).E, ( map.MemberMaps[4].Data.ReadingConvertExpression as Expression> ).Compile()( fakeRow ).E ); //6 } [TestMethod] public void ClassMapBuilderAddsDefaultsCorrectly() { - Assert.AreEqual( "WEW", map.PropertyMaps[0].Data.Default );//7 - Assert.AreEqual( 4d, map.PropertyMaps[3].Data.Default );//7 + Assert.AreEqual( "WEW", map.MemberMaps[0].Data.Default );//7 + Assert.AreEqual( 4d, map.MemberMaps[3].Data.Default );//7 } private class BuilderRowFake : IReaderRow diff --git a/src/CsvHelper.Tests/CsvClassMappingAutoMapTests.cs b/src/CsvHelper.Tests/CsvClassMappingAutoMapTests.cs index ce2b0b498..294c17d04 100644 --- a/src/CsvHelper.Tests/CsvClassMappingAutoMapTests.cs +++ b/src/CsvHelper.Tests/CsvClassMappingAutoMapTests.cs @@ -19,11 +19,11 @@ public void Test() { var aMap = new AMap(); - Assert.AreEqual( 3, aMap.PropertyMaps.Count ); - Assert.AreEqual( 0, aMap.PropertyMaps[0].Data.Index ); - Assert.AreEqual( 1, aMap.PropertyMaps[1].Data.Index ); - Assert.AreEqual( 2, aMap.PropertyMaps[2].Data.Index ); - Assert.AreEqual( true, aMap.PropertyMaps[2].Data.Ignore ); + Assert.AreEqual( 3, aMap.MemberMaps.Count ); + Assert.AreEqual( 0, aMap.MemberMaps[0].Data.Index ); + Assert.AreEqual( 1, aMap.MemberMaps[1].Data.Index ); + Assert.AreEqual( 2, aMap.MemberMaps[2].Data.Index ); + Assert.AreEqual( true, aMap.MemberMaps[2].Data.Ignore ); Assert.AreEqual( 1, aMap.ReferenceMaps.Count ); } diff --git a/src/CsvHelper.Tests/CsvConfigurationTests.cs b/src/CsvHelper.Tests/CsvConfigurationTests.cs index 54bb0aa0e..718c49b3e 100644 --- a/src/CsvHelper.Tests/CsvConfigurationTests.cs +++ b/src/CsvHelper.Tests/CsvConfigurationTests.cs @@ -36,7 +36,7 @@ public void AddingMappingsWithGenericMethod1Test() var config = new CsvHelper.Configuration.Configuration(); config.RegisterClassMap(); - Assert.AreEqual( 2, config.Maps[typeof( TestClass )].PropertyMaps.Count ); + Assert.AreEqual( 2, config.Maps[typeof( TestClass )].MemberMaps.Count ); } [TestMethod] @@ -45,7 +45,7 @@ public void AddingMappingsWithGenericMethod2Test() var config = new CsvHelper.Configuration.Configuration(); config.RegisterClassMap(); - Assert.AreEqual( 2, config.Maps[typeof( TestClass )].PropertyMaps.Count ); + Assert.AreEqual( 2, config.Maps[typeof( TestClass )].MemberMaps.Count ); } [TestMethod] @@ -54,7 +54,7 @@ public void AddingMappingsWithNonGenericMethodTest() var config = new CsvHelper.Configuration.Configuration(); config.RegisterClassMap( typeof( TestClassMappings ) ); - Assert.AreEqual( 2, config.Maps[typeof( TestClass )].PropertyMaps.Count ); + Assert.AreEqual( 2, config.Maps[typeof( TestClass )].MemberMaps.Count ); } [TestMethod] @@ -63,7 +63,7 @@ public void AddingMappingsWithInstanceMethodTest() var config = new CsvHelper.Configuration.Configuration(); config.RegisterClassMap( new TestClassMappings() ); - Assert.AreEqual( 2, config.Maps[typeof( TestClass )].PropertyMaps.Count ); + Assert.AreEqual( 2, config.Maps[typeof( TestClass )].MemberMaps.Count ); } [TestMethod] diff --git a/src/CsvHelper.Tests/CsvReaderTests.cs b/src/CsvHelper.Tests/CsvReaderTests.cs index 3d6e36aff..9faf438bf 100644 --- a/src/CsvHelper.Tests/CsvReaderTests.cs +++ b/src/CsvHelper.Tests/CsvReaderTests.cs @@ -1094,7 +1094,7 @@ public TestRecordDuplicateHeaderNamesMap() private class TestTypeConverter : DefaultTypeConverter { - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData propertyMapData ) { return "test"; } diff --git a/src/CsvHelper.Tests/CsvWriterTests.cs b/src/CsvHelper.Tests/CsvWriterTests.cs index e88b4bce9..9dff14c5a 100644 --- a/src/CsvHelper.Tests/CsvWriterTests.cs +++ b/src/CsvHelper.Tests/CsvWriterTests.cs @@ -924,12 +924,12 @@ public TestRecordNoIndexesMap() private class TestTypeConverter : ITypeConverter { - public string ConvertToString( object value, IWriterRow row, PropertyMapData propertyMapData ) + public string ConvertToString( object value, IWriterRow row, MemberMapData propertyMapData ) { return "test"; } - public object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public object ConvertFromString( string text, IReaderRow row, MemberMapData propertyMapData ) { throw new NotImplementedException(); } diff --git a/src/CsvHelper.Tests/MappingInheritedClassTests.cs b/src/CsvHelper.Tests/MappingInheritedClassTests.cs index 5e0173b60..2fd3b8a95 100644 --- a/src/CsvHelper.Tests/MappingInheritedClassTests.cs +++ b/src/CsvHelper.Tests/MappingInheritedClassTests.cs @@ -18,7 +18,7 @@ public class MappingInheritedClassTests public void Test() { var map = new AMap(); - Assert.AreEqual( 2, map.PropertyMaps.Count ); + Assert.AreEqual( 2, map.MemberMaps.Count ); } private interface IA diff --git a/src/CsvHelper.Tests/Mappings/CsvClassMappingTests.cs b/src/CsvHelper.Tests/Mappings/CsvClassMappingTests.cs index 5c31a8491..1464becb0 100644 --- a/src/CsvHelper.Tests/Mappings/CsvClassMappingTests.cs +++ b/src/CsvHelper.Tests/Mappings/CsvClassMappingTests.cs @@ -19,19 +19,19 @@ public void MapTest() var map = new TestMappingDefaultClass(); //map.CreateMap(); - Assert.AreEqual( 3, map.PropertyMaps.Count ); + Assert.AreEqual( 3, map.MemberMaps.Count ); - Assert.AreEqual( "GuidColumn", map.PropertyMaps[0].Data.Names.FirstOrDefault() ); - Assert.AreEqual( 0, map.PropertyMaps[0].Data.Index ); - Assert.AreEqual( typeof( GuidConverter ), map.PropertyMaps[0].Data.TypeConverter.GetType() ); + Assert.AreEqual( "GuidColumn", map.MemberMaps[0].Data.Names.FirstOrDefault() ); + Assert.AreEqual( 0, map.MemberMaps[0].Data.Index ); + Assert.AreEqual( typeof( GuidConverter ), map.MemberMaps[0].Data.TypeConverter.GetType() ); - Assert.AreEqual( "IntColumn", map.PropertyMaps[1].Data.Names.FirstOrDefault() ); - Assert.AreEqual( 1, map.PropertyMaps[1].Data.Index ); - Assert.AreEqual( typeof( Int32Converter ), map.PropertyMaps[1].Data.TypeConverter.GetType() ); + Assert.AreEqual( "IntColumn", map.MemberMaps[1].Data.Names.FirstOrDefault() ); + Assert.AreEqual( 1, map.MemberMaps[1].Data.Index ); + Assert.AreEqual( typeof( Int32Converter ), map.MemberMaps[1].Data.TypeConverter.GetType() ); - Assert.AreEqual( "StringColumn", map.PropertyMaps[2].Data.Names.FirstOrDefault() ); - Assert.AreEqual( 2, map.PropertyMaps[2].Data.Index ); - Assert.AreEqual( typeof( StringConverter ), map.PropertyMaps[2].Data.TypeConverter.GetType() ); + Assert.AreEqual( "StringColumn", map.MemberMaps[2].Data.Names.FirstOrDefault() ); + Assert.AreEqual( 2, map.MemberMaps[2].Data.Index ); + Assert.AreEqual( typeof( StringConverter ), map.MemberMaps[2].Data.TypeConverter.GetType() ); } [TestMethod] @@ -40,11 +40,11 @@ public void MapNameTest() var map = new TestMappingNameClass(); //map.CreateMap(); - Assert.AreEqual( 3, map.PropertyMaps.Count ); + Assert.AreEqual( 3, map.MemberMaps.Count ); - Assert.AreEqual( "Guid Column", map.PropertyMaps[0].Data.Names.FirstOrDefault() ); - Assert.AreEqual( "Int Column", map.PropertyMaps[1].Data.Names.FirstOrDefault() ); - Assert.AreEqual( "String Column", map.PropertyMaps[2].Data.Names.FirstOrDefault() ); + Assert.AreEqual( "Guid Column", map.MemberMaps[0].Data.Names.FirstOrDefault() ); + Assert.AreEqual( "Int Column", map.MemberMaps[1].Data.Names.FirstOrDefault() ); + Assert.AreEqual( "String Column", map.MemberMaps[2].Data.Names.FirstOrDefault() ); } [TestMethod] @@ -53,11 +53,11 @@ public void MapIndexTest() var map = new TestMappingIndexClass(); //map.CreateMap(); - Assert.AreEqual( 3, map.PropertyMaps.Count ); + Assert.AreEqual( 3, map.MemberMaps.Count ); - Assert.AreEqual( 2, map.PropertyMaps[0].Data.Index ); - Assert.AreEqual( 3, map.PropertyMaps[1].Data.Index ); - Assert.AreEqual( 1, map.PropertyMaps[2].Data.Index ); + Assert.AreEqual( 2, map.MemberMaps[0].Data.Index ); + Assert.AreEqual( 3, map.MemberMaps[1].Data.Index ); + Assert.AreEqual( 1, map.MemberMaps[2].Data.Index ); } [TestMethod] @@ -66,11 +66,11 @@ public void MapIgnoreTest() var map = new TestMappingIngoreClass(); //map.CreateMap(); - Assert.AreEqual( 3, map.PropertyMaps.Count ); + Assert.AreEqual( 3, map.MemberMaps.Count ); - Assert.IsTrue( map.PropertyMaps[0].Data.Ignore ); - Assert.IsFalse( map.PropertyMaps[1].Data.Ignore ); - Assert.IsTrue( map.PropertyMaps[2].Data.Ignore ); + Assert.IsTrue( map.MemberMaps[0].Data.Ignore ); + Assert.IsFalse( map.MemberMaps[1].Data.Ignore ); + Assert.IsTrue( map.MemberMaps[2].Data.Ignore ); } [TestMethod] @@ -79,11 +79,11 @@ public void MapTypeConverterTest() var map = new TestMappingTypeConverterClass(); //map.CreateMap(); - Assert.AreEqual( 3, map.PropertyMaps.Count ); + Assert.AreEqual( 3, map.MemberMaps.Count ); - Assert.IsInstanceOfType( map.PropertyMaps[0].Data.TypeConverter, typeof( Int16Converter ) ); - Assert.IsInstanceOfType( map.PropertyMaps[1].Data.TypeConverter, typeof( StringConverter ) ); - Assert.IsInstanceOfType( map.PropertyMaps[2].Data.TypeConverter, typeof( Int64Converter ) ); + Assert.IsInstanceOfType( map.MemberMaps[0].Data.TypeConverter, typeof( Int16Converter ) ); + Assert.IsInstanceOfType( map.MemberMaps[1].Data.TypeConverter, typeof( StringConverter ) ); + Assert.IsInstanceOfType( map.MemberMaps[2].Data.TypeConverter, typeof( Int64Converter ) ); } [TestMethod] @@ -92,23 +92,23 @@ public void MapMultipleNamesTest() var map = new TestMappingMultipleNamesClass(); //map.CreateMap(); - Assert.AreEqual( 3, map.PropertyMaps.Count ); + Assert.AreEqual( 3, map.MemberMaps.Count ); - Assert.AreEqual( 3, map.PropertyMaps[0].Data.Names.Count ); - Assert.AreEqual( 3, map.PropertyMaps[1].Data.Names.Count ); - Assert.AreEqual( 3, map.PropertyMaps[2].Data.Names.Count ); + Assert.AreEqual( 3, map.MemberMaps[0].Data.Names.Count ); + Assert.AreEqual( 3, map.MemberMaps[1].Data.Names.Count ); + Assert.AreEqual( 3, map.MemberMaps[2].Data.Names.Count ); - Assert.AreEqual("guid1", map.PropertyMaps[0].Data.Names[0]); - Assert.AreEqual("guid2", map.PropertyMaps[0].Data.Names[1]); - Assert.AreEqual("guid3", map.PropertyMaps[0].Data.Names[2]); + Assert.AreEqual("guid1", map.MemberMaps[0].Data.Names[0]); + Assert.AreEqual("guid2", map.MemberMaps[0].Data.Names[1]); + Assert.AreEqual("guid3", map.MemberMaps[0].Data.Names[2]); - Assert.AreEqual("int1", map.PropertyMaps[1].Data.Names[0]); - Assert.AreEqual("int2", map.PropertyMaps[1].Data.Names[1]); - Assert.AreEqual("int3", map.PropertyMaps[1].Data.Names[2]); + Assert.AreEqual("int1", map.MemberMaps[1].Data.Names[0]); + Assert.AreEqual("int2", map.MemberMaps[1].Data.Names[1]); + Assert.AreEqual("int3", map.MemberMaps[1].Data.Names[2]); - Assert.AreEqual("string1", map.PropertyMaps[2].Data.Names[0]); - Assert.AreEqual("string2", map.PropertyMaps[2].Data.Names[1]); - Assert.AreEqual("string3", map.PropertyMaps[2].Data.Names[2]); + Assert.AreEqual("string1", map.MemberMaps[2].Data.Names[0]); + Assert.AreEqual("string2", map.MemberMaps[2].Data.Names[1]); + Assert.AreEqual("string3", map.MemberMaps[2].Data.Names[2]); } [TestMethod] @@ -138,7 +138,7 @@ public void PropertyMapAccessTest() config.RegisterClassMap(); config.Maps.Find().Map( m => m.AId ).Ignore(); - Assert.AreEqual( true, config.Maps[typeof( A )].PropertyMaps[0].Data.Ignore ); + Assert.AreEqual( true, config.Maps[typeof( A )].MemberMaps[0].Data.Ignore ); } private class A diff --git a/src/CsvHelper.Tests/Mappings/FieldMappingTests.cs b/src/CsvHelper.Tests/Mappings/FieldMappingTests.cs index bb54f10df..cf20ebf93 100644 --- a/src/CsvHelper.Tests/Mappings/FieldMappingTests.cs +++ b/src/CsvHelper.Tests/Mappings/FieldMappingTests.cs @@ -370,7 +370,7 @@ public APrivateMap() { var options = new AutoMapOptions { - IncludePrivateProperties = true, + IncludePrivateMembers = true, MemberTypes = MemberTypes.Fields }; AutoMap( options ); diff --git a/src/CsvHelper.Tests/Mappings/ReferenceConstructorArgsTests.cs b/src/CsvHelper.Tests/Mappings/ReferenceConstructorArgsTests.cs index 4f30485c4..f3448c86b 100644 --- a/src/CsvHelper.Tests/Mappings/ReferenceConstructorArgsTests.cs +++ b/src/CsvHelper.Tests/Mappings/ReferenceConstructorArgsTests.cs @@ -18,7 +18,7 @@ public class ReferenceConstructorArgsTests public void Test() { var map = new AMap( "A Field" ); - var name = map.ReferenceMaps[0].Data.Mapping.PropertyMaps.Find( m => m.Name ).Data.Names[0]; + var name = map.ReferenceMaps[0].Data.Mapping.MemberMaps.Find( m => m.Name ).Data.Names[0]; Assert.AreEqual( "B Field", name ); } diff --git a/src/CsvHelper.Tests/TypeConversion/ArrayConverterTests.cs b/src/CsvHelper.Tests/TypeConversion/ArrayConverterTests.cs index 234d3acfa..0244530a6 100644 --- a/src/CsvHelper.Tests/TypeConversion/ArrayConverterTests.cs +++ b/src/CsvHelper.Tests/TypeConversion/ArrayConverterTests.cs @@ -31,7 +31,7 @@ public void ReadConvertNoIndexEndTest() rowMock.Setup( m => m.Configuration ).Returns( config ); rowMock.Setup( m => m.Context ).Returns( context ); rowMock.Setup( m => m.GetField( It.IsAny(), It.IsAny() ) ).Returns( ( type, index ) => Convert.ToInt32( currentRecord[index] ) ); - var data = new PropertyMapData( typeof( Test ).GetTypeInfo().GetProperty( "List" ) ) + var data = new MemberMapData( typeof( Test ).GetTypeInfo().GetProperty( "List" ) ) { Index = 2, TypeConverterOptions = { CultureInfo = CultureInfo.CurrentCulture } @@ -60,7 +60,7 @@ public void ReadConvertWithIndexEndTest() rowMock.Setup( m => m.Configuration ).Returns( config ); rowMock.Setup( m => m.Context ).Returns( context ); rowMock.Setup( m => m.GetField( It.IsAny(), It.IsAny() ) ).Returns( ( type, index ) => Convert.ToInt32( currentRecord[index] ) ); - var data = new PropertyMapData( typeof( Test ).GetProperty( "List" ) ) + var data = new MemberMapData( typeof( Test ).GetProperty( "List" ) ) { Index = 2, IndexEnd = 3, @@ -85,7 +85,7 @@ public void WriteConvertTest() var array = new[] { 1, 2, 3 }; - var data = new PropertyMapData( typeof( Test ).GetProperty( "List" ) ) + var data = new MemberMapData( typeof( Test ).GetProperty( "List" ) ) { Index = 2, IndexEnd = 3, diff --git a/src/CsvHelper.Tests/TypeConversion/BooleanConverterTests.cs b/src/CsvHelper.Tests/TypeConversion/BooleanConverterTests.cs index 085100b6c..50bff6430 100644 --- a/src/CsvHelper.Tests/TypeConversion/BooleanConverterTests.cs +++ b/src/CsvHelper.Tests/TypeConversion/BooleanConverterTests.cs @@ -19,7 +19,7 @@ public void ConvertToStringTest() { var converter = new BooleanConverter(); - var propertyMapData = new PropertyMapData( null ) + var propertyMapData = new MemberMapData( null ) { TypeConverter = converter, TypeConverterOptions = { CultureInfo = CultureInfo.CurrentCulture } @@ -38,7 +38,7 @@ public void ConvertFromStringTest() { var converter = new BooleanConverter(); - var propertyMapData = new PropertyMapData( null ); + var propertyMapData = new MemberMapData( null ); propertyMapData.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture; var mockRow = new Mock(); diff --git a/src/CsvHelper.Tests/TypeConversion/ByteConverterTests.cs b/src/CsvHelper.Tests/TypeConversion/ByteConverterTests.cs index 9bf7dceac..7e677c257 100644 --- a/src/CsvHelper.Tests/TypeConversion/ByteConverterTests.cs +++ b/src/CsvHelper.Tests/TypeConversion/ByteConverterTests.cs @@ -18,7 +18,7 @@ public class ByteConverterTests public void ConvertToStringTest() { var converter = new ByteConverter(); - var propertyMapData = new PropertyMapData( null ) + var propertyMapData = new MemberMapData( null ) { TypeConverter = converter, TypeConverterOptions = { CultureInfo = CultureInfo.CurrentCulture } @@ -34,7 +34,7 @@ public void ConvertFromStringTest() { var converter = new ByteConverter(); - var propertyMapData = new PropertyMapData( null ); + var propertyMapData = new MemberMapData( null ); propertyMapData.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture; var mockRow = new Mock(); diff --git a/src/CsvHelper.Tests/TypeConversion/CharConverterTests.cs b/src/CsvHelper.Tests/TypeConversion/CharConverterTests.cs index 47b467698..8b0d08e4e 100644 --- a/src/CsvHelper.Tests/TypeConversion/CharConverterTests.cs +++ b/src/CsvHelper.Tests/TypeConversion/CharConverterTests.cs @@ -18,7 +18,7 @@ public class CharConverterTests public void ConvertToStringTest() { var converter = new CharConverter(); - var propertyMapData = new PropertyMapData( null ) + var propertyMapData = new MemberMapData( null ) { TypeConverter = converter, TypeConverterOptions = { CultureInfo = CultureInfo.CurrentCulture } @@ -36,7 +36,7 @@ public void ConvertFromStringTest() { var converter = new CharConverter(); - var propertyMapData = new PropertyMapData( null ); + var propertyMapData = new MemberMapData( null ); propertyMapData.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture; var mockRow = new Mock(); diff --git a/src/CsvHelper.Tests/TypeConversion/CollectionGenericConverterTests.cs b/src/CsvHelper.Tests/TypeConversion/CollectionGenericConverterTests.cs index 86fa21151..26c9be465 100644 --- a/src/CsvHelper.Tests/TypeConversion/CollectionGenericConverterTests.cs +++ b/src/CsvHelper.Tests/TypeConversion/CollectionGenericConverterTests.cs @@ -32,7 +32,7 @@ public void ConvertNoIndexEndTest() rowMock.Setup( m => m.Configuration ).Returns( config ); rowMock.Setup( m => m.Context ).Returns( context ); rowMock.Setup( m => m.GetField( It.IsAny(), It.IsAny() ) ).Returns( ( type, index ) => Convert.ToInt32( currentRecord[index] ) ); - var data = new PropertyMapData( typeof( Test ).GetTypeInfo().GetProperty( "List" ) ) + var data = new MemberMapData( typeof( Test ).GetTypeInfo().GetProperty( "List" ) ) { Index = 2 }; @@ -60,7 +60,7 @@ public void ConvertWithIndexEndTest() rowMock.Setup( m => m.Configuration ).Returns( config ); rowMock.Setup( m => m.Context ).Returns( context ); rowMock.Setup( m => m.GetField( It.IsAny(), It.IsAny() ) ).Returns( ( type, index ) => Convert.ToInt32( currentRecord[index] ) ); - var data = new PropertyMapData( typeof( Test ).GetProperty( "List" ) ) + var data = new MemberMapData( typeof( Test ).GetProperty( "List" ) ) { Index = 2, IndexEnd = 3 diff --git a/src/CsvHelper.Tests/TypeConversion/DateTimeConverterTests.cs b/src/CsvHelper.Tests/TypeConversion/DateTimeConverterTests.cs index d17bc0d7e..a48c75571 100644 --- a/src/CsvHelper.Tests/TypeConversion/DateTimeConverterTests.cs +++ b/src/CsvHelper.Tests/TypeConversion/DateTimeConverterTests.cs @@ -18,7 +18,7 @@ public class DateTimeConverterTests public void ConvertToStringTest() { var converter = new DateTimeConverter(); - var propertyMapData = new PropertyMapData( null ) + var propertyMapData = new MemberMapData( null ) { TypeConverter = converter, TypeConverterOptions = { CultureInfo = CultureInfo.CurrentCulture } @@ -39,7 +39,7 @@ public void ConvertFromStringTest() { var converter = new DateTimeConverter(); - var propertyMapData = new PropertyMapData( null ); + var propertyMapData = new MemberMapData( null ); propertyMapData.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture; var mockRow = new Mock(); @@ -68,7 +68,7 @@ public void ComponentModelCompatibilityTest() var converter = new DateTimeConverter(); var cmConverter = new System.ComponentModel.DateTimeConverter(); - var propertyMapData = new PropertyMapData( null ); + var propertyMapData = new MemberMapData( null ); propertyMapData.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture; var mockRow = new Mock(); diff --git a/src/CsvHelper.Tests/TypeConversion/DateTimeOffsetConverterTests.cs b/src/CsvHelper.Tests/TypeConversion/DateTimeOffsetConverterTests.cs index f6be36599..394552185 100644 --- a/src/CsvHelper.Tests/TypeConversion/DateTimeOffsetConverterTests.cs +++ b/src/CsvHelper.Tests/TypeConversion/DateTimeOffsetConverterTests.cs @@ -21,7 +21,7 @@ public class DateTimeOffsetConverterTests public void ConvertToStringTest() { var converter = new DateTimeOffsetConverter(); - var propertyMapData = new PropertyMapData( null ) + var propertyMapData = new MemberMapData( null ) { TypeConverter = converter, TypeConverterOptions = { CultureInfo = CultureInfo.CurrentCulture } @@ -42,7 +42,7 @@ public void ConvertFromStringTest() { var converter = new DateTimeOffsetConverter(); - var propertyMapData = new PropertyMapData( null ); + var propertyMapData = new MemberMapData( null ); propertyMapData.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture; var mockRow = new Mock(); @@ -71,7 +71,7 @@ public void ComponentModelCompatibilityTest() var converter = new DateTimeOffsetConverter(); var cmConverter = new System.ComponentModel.DateTimeOffsetConverter(); - var propertyMapData = new PropertyMapData( null ); + var propertyMapData = new MemberMapData( null ); propertyMapData.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture; var mockRow = new Mock(); diff --git a/src/CsvHelper.Tests/TypeConversion/EnumConverterTests.cs b/src/CsvHelper.Tests/TypeConversion/EnumConverterTests.cs index 5a8c4c736..907dc2dfa 100644 --- a/src/CsvHelper.Tests/TypeConversion/EnumConverterTests.cs +++ b/src/CsvHelper.Tests/TypeConversion/EnumConverterTests.cs @@ -34,7 +34,7 @@ public void ConstructorTest() public void ConvertToStringTest() { var converter = new EnumConverter( typeof( TestEnum ) ); - var propertyMapData = new PropertyMapData( null ) + var propertyMapData = new MemberMapData( null ) { TypeConverter = converter, TypeConverterOptions = { CultureInfo = CultureInfo.CurrentCulture } @@ -52,7 +52,7 @@ public void ConvertFromStringTest() { var converter = new EnumConverter( typeof( TestEnum ) ); - var propertyMapData = new PropertyMapData( null ); + var propertyMapData = new MemberMapData( null ); propertyMapData.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture; var mockRow = new Mock(); diff --git a/src/CsvHelper.Tests/TypeConversion/EnumerableConverterTests.cs b/src/CsvHelper.Tests/TypeConversion/EnumerableConverterTests.cs index 4c93cfa51..a2a56dc87 100644 --- a/src/CsvHelper.Tests/TypeConversion/EnumerableConverterTests.cs +++ b/src/CsvHelper.Tests/TypeConversion/EnumerableConverterTests.cs @@ -22,7 +22,7 @@ public void ConvertTest() { var converter = new EnumerableConverter(); - var propertyMapData = new PropertyMapData( null ); + var propertyMapData = new MemberMapData( null ); propertyMapData.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture; var mockReaderRow = new Mock(); diff --git a/src/CsvHelper.Tests/TypeConversion/IDictionaryGenericConverterTests.cs b/src/CsvHelper.Tests/TypeConversion/IDictionaryGenericConverterTests.cs index 614f54dc0..63e9e5e9d 100644 --- a/src/CsvHelper.Tests/TypeConversion/IDictionaryGenericConverterTests.cs +++ b/src/CsvHelper.Tests/TypeConversion/IDictionaryGenericConverterTests.cs @@ -36,7 +36,7 @@ public void ConvertNoIndexEndTest() rowMock.Setup( m => m.Configuration ).Returns( config ); rowMock.Setup( m => m.Context ).Returns( context ); rowMock.Setup( m => m.GetField( It.IsAny(), It.IsAny() ) ).Returns( ( type, index ) => Convert.ToInt32( currentRecord[index] ) ); - var data = new PropertyMapData( typeof( Test ).GetTypeInfo().GetProperty( "Dictionary" ) ) + var data = new MemberMapData( typeof( Test ).GetTypeInfo().GetProperty( "Dictionary" ) ) { Index = 2 }; @@ -66,7 +66,7 @@ public void ConvertWithIndexEndTest() rowMock.Setup( m => m.Configuration ).Returns( config ); rowMock.Setup( m => m.Context ).Returns( context ); rowMock.Setup( m => m.GetField( It.IsAny(), It.IsAny() ) ).Returns( ( type, index ) => Convert.ToInt32( currentRecord[index] ) ); - var data = new PropertyMapData( typeof( Test ).GetProperty( "Dictionary" ) ) + var data = new MemberMapData( typeof( Test ).GetProperty( "Dictionary" ) ) { Index = 2, IndexEnd = 3 diff --git a/src/CsvHelper.Tests/TypeConversion/IEnumerableGenericConverterTests.cs b/src/CsvHelper.Tests/TypeConversion/IEnumerableGenericConverterTests.cs index 870a527e7..18227fdf1 100644 --- a/src/CsvHelper.Tests/TypeConversion/IEnumerableGenericConverterTests.cs +++ b/src/CsvHelper.Tests/TypeConversion/IEnumerableGenericConverterTests.cs @@ -32,7 +32,7 @@ public void ConvertNoIndexEndTest() rowMock.Setup( m => m.Configuration ).Returns( config ); rowMock.Setup( m => m.Context ).Returns( context ); rowMock.Setup( m => m.GetField( It.IsAny(), It.IsAny() ) ).Returns( ( type, index ) => Convert.ToInt32( currentRecord[index] ) ); - var data = new PropertyMapData( typeof( Test ).GetTypeInfo().GetProperty( "List" ) ) + var data = new MemberMapData( typeof( Test ).GetTypeInfo().GetProperty( "List" ) ) { Index = 2 }; @@ -61,7 +61,7 @@ public void ConvertWithIndexEndTest() rowMock.Setup( m => m.Configuration ).Returns( config ); rowMock.Setup( m => m.Context ).Returns( context ); rowMock.Setup( m => m.GetField( It.IsAny(), It.IsAny() ) ).Returns( ( type, index ) => Convert.ToInt32( currentRecord[index] ) ); - var data = new PropertyMapData( typeof( Test ).GetProperty( "List" ) ) + var data = new MemberMapData( typeof( Test ).GetProperty( "List" ) ) { Index = 2, IndexEnd = 3 diff --git a/src/CsvHelper.Tests/TypeConversion/TimeSpanConverterTests.cs b/src/CsvHelper.Tests/TypeConversion/TimeSpanConverterTests.cs index 9e58d1f89..eec6d4445 100644 --- a/src/CsvHelper.Tests/TypeConversion/TimeSpanConverterTests.cs +++ b/src/CsvHelper.Tests/TypeConversion/TimeSpanConverterTests.cs @@ -18,7 +18,7 @@ public class TimeSpanConverterTests public void ConvertToStringTest() { var converter = new TimeSpanConverter(); - var propertyMapData = new PropertyMapData( null ) + var propertyMapData = new MemberMapData( null ) { TypeConverter = converter, TypeConverterOptions = { CultureInfo = CultureInfo.CurrentCulture } @@ -41,7 +41,7 @@ public void ComponentModelCompatibilityTest() var converter = new TimeSpanConverter(); var cmConverter = new System.ComponentModel.TimeSpanConverter(); - var propertyMapData = new PropertyMapData( null ); + var propertyMapData = new MemberMapData( null ); propertyMapData.TypeConverterOptions.CultureInfo = CultureInfo.CurrentCulture; var rowMock = new Mock(); diff --git a/src/CsvHelper/Configuration/AutoMapOptions.cs b/src/CsvHelper/Configuration/AutoMapOptions.cs index 7ae7af1a4..c12f55b91 100644 --- a/src/CsvHelper/Configuration/AutoMapOptions.cs +++ b/src/CsvHelper/Configuration/AutoMapOptions.cs @@ -22,7 +22,7 @@ public class AutoMapOptions /// /// Gets or sets a value indicating if headers of reference - /// properties/fields should get prefixed by the parent property/field + /// members should get prefixed by the parent member /// name when automapping. /// True to prefix, otherwise false. Default is false. /// @@ -30,10 +30,10 @@ public class AutoMapOptions /// /// Gets or sets a value indicating if private - /// properties/fields should be read from and written to. - /// True to include private properties/fields, otherwise false. Default is false. + /// members should be read from and written to. + /// True to include private members, otherwise false. Default is false. /// - public bool IncludePrivateProperties { get; set; } + public bool IncludePrivateMembers { get; set; } /// /// Gets or sets a value indicating if the CSV file has a header record. @@ -54,7 +54,7 @@ public class AutoMapOptions /// /// Determines if constructor parameters should be used to create - /// the class instead of the default constructor and properties. + /// the class instead of the default constructor and members. /// public Func ShouldUseConstructorParameters { get; set; } @@ -76,7 +76,7 @@ public AutoMapOptions( Configuration configuration ) { IgnoreReferences = configuration.IgnoreReferences; PrefixReferenceHeaders = configuration.PrefixReferenceHeaders; - IncludePrivateProperties = configuration.IncludePrivateMembers; + IncludePrivateMembers = configuration.IncludePrivateMembers; HasHeaderRecord = configuration.HasHeaderRecord; MemberTypes = configuration.MemberTypes; TypeConverterOptionsFactory = configuration.TypeConverterOptionsFactory ?? throw new ArgumentException( $"Configuration value '{configuration.TypeConverterOptionsFactory}' cannot be null.", nameof( configuration ) ); diff --git a/src/CsvHelper/Configuration/ClassMap.cs b/src/CsvHelper/Configuration/ClassMap.cs index 7f61f4c7d..4357ecb44 100644 --- a/src/CsvHelper/Configuration/ClassMap.cs +++ b/src/CsvHelper/Configuration/ClassMap.cs @@ -14,7 +14,7 @@ namespace CsvHelper.Configuration { /// - /// Maps class properties to CSV fields. + /// Maps class members to CSV fields. /// public abstract class ClassMap { @@ -45,14 +45,14 @@ public abstract class ClassMap public virtual List ParameterMaps { get; } = new List(); /// - /// The class property/field mappings. + /// The class member mappings. /// - public virtual PropertyMapCollection PropertyMaps { get; } = new PropertyMapCollection(); + public virtual MemberMapCollection MemberMaps { get; } = new MemberMapCollection(); /// - /// The class property/field reference mappings. + /// The class member reference mappings. /// - public virtual PropertyReferenceMapCollection ReferenceMaps { get; } = new PropertyReferenceMapCollection(); + public virtual MemberReferenceMapCollection ReferenceMaps { get; } = new MemberReferenceMapCollection(); /// /// Allow only internal creation of CsvClassMap. @@ -64,54 +64,54 @@ internal ClassMap( Type classType ) } /// - /// Maps a property/field to a CSV field. + /// Maps a member to a CSV field. /// /// The type of the class this map is for. This may not be the same type - /// as the member.DeclaringType or the current ClassType due to nested property mappings. - /// The property/field to map. + /// as the member.DeclaringType or the current ClassType due to nested member mappings. + /// The member to map. /// If true, an existing map will be used if available. - /// If false, a new map is created for the same property/field. - /// The property/field mapping. - public PropertyMap Map( Type classType, MemberInfo member, bool useExistingMap = true ) + /// If false, a new map is created for the same member. + /// The member mapping. + public MemberMap Map( Type classType, MemberInfo member, bool useExistingMap = true ) { if( useExistingMap ) { - var existingMap = PropertyMaps.Find( member ); + var existingMap = MemberMaps.Find( member ); if( existingMap != null ) { return existingMap; } } - var propertyMap = PropertyMap.CreateGeneric( classType, member ); - propertyMap.Data.Index = GetMaxIndex() + 1; - PropertyMaps.Add( propertyMap ); + var memberMap = MemberMap.CreateGeneric( classType, member ); + memberMap.Data.Index = GetMaxIndex() + 1; + MemberMaps.Add( memberMap ); - return propertyMap; + return memberMap; } /// /// Maps a non-member to a CSV field. This allows for writing - /// data that isn't mapped to a class property/field. + /// data that isn't mapped to a class member. /// - /// The property mapping. - public virtual PropertyMap Map() + /// The member mapping. + public virtual MemberMap Map() { - var propertyMap = new PropertyMap( null ); - propertyMap.Data.Index = GetMaxIndex() + 1; - PropertyMaps.Add( propertyMap ); + var memberMap = new MemberMap( null ); + memberMap.Data.Index = GetMaxIndex() + 1; + MemberMaps.Add( memberMap ); - return propertyMap; + return memberMap; } /// - /// Maps a property/field to another class map. + /// Maps a member to another class map. /// /// The type of the class map. - /// The property/field. + /// The member. /// Constructor arguments used to create the reference map. - /// The reference mapping for the property/field. - public virtual PropertyReferenceMap References( Type classMapType, MemberInfo member, params object[] constructorArgs ) + /// The reference mapping for the member. + public virtual MemberReferenceMap References( Type classMapType, MemberInfo member, params object[] constructorArgs ) { if( !typeof( ClassMap ).IsAssignableFrom( classMapType ) ) { @@ -127,14 +127,14 @@ public virtual PropertyReferenceMap References( Type classMapType, MemberInfo me var map = (ClassMap)ReflectionHelper.CreateInstance( classMapType, constructorArgs ); map.ReIndex( GetMaxIndex() + 1 ); - var reference = new PropertyReferenceMap( member, map ); + var reference = new MemberReferenceMap( member, map ); ReferenceMaps.Add( reference ); return reference; } /// - /// Auto maps all properties/fields for the given type. If a property/field + /// Auto maps all members for the given type. If a member /// is mapped again it will override the existing map. /// public virtual void AutoMap() @@ -143,7 +143,7 @@ public virtual void AutoMap() } /// - /// Auto maps all properties/fields for the given type. If a property/field + /// Auto maps all members for the given type. If a member /// is mapped again it will override the existing map. /// /// Options for auto mapping. @@ -162,23 +162,23 @@ public virtual void AutoMap( AutoMapOptions options ) if( options.ShouldUseConstructorParameters( type ) ) { // This type doesn't have a parameterless constructor so we can't create an - // instance and set it's property. Constructor parameters need to be created - // instead. Writing only uses getters, so properties will also be mapped + // instance and set it's member. Constructor parameters need to be created + // instead. Writing only uses getters, so members will also be mapped // for writing purposes. AutoMapConstructorParameters( this, options, mapParents ); } - AutoMapProperties( this, options, mapParents ); + AutoMapMembers( this, options, mapParents ); } /// /// Get the largest index for the - /// properties/fields and references. + /// members and references. /// /// The max index. public virtual int GetMaxIndex() { - if( ParameterMaps.Count == 0 && PropertyMaps.Count == 0 && ReferenceMaps.Count == 0 ) + if( ParameterMaps.Count == 0 && MemberMaps.Count == 0 && ReferenceMaps.Count == 0 ) { return -1; } @@ -189,9 +189,9 @@ public virtual int GetMaxIndex() indexes.AddRange( ParameterMaps.Select( parameterMap => parameterMap.GetMaxIndex() ) ); } - if( PropertyMaps.Count > 0 ) + if( MemberMaps.Count > 0 ) { - indexes.Add( PropertyMaps.Max( pm => pm.Data.Index ) ); + indexes.Add( MemberMaps.Max( pm => pm.Data.Index ) ); } if( ReferenceMaps.Count > 0 ) @@ -214,11 +214,11 @@ public virtual int ReIndex( int indexStart = 0 ) parameterMap.Data.Index = indexStart + parameterMap.Data.Index; } - foreach( var propertyMap in PropertyMaps ) + foreach( var memberMap in MemberMaps ) { - if( !propertyMap.Data.IsIndexSet ) + if( !memberMap.Data.IsIndexSet ) { - propertyMap.Data.Index = indexStart + propertyMap.Data.Index; + memberMap.Data.Index = indexStart + memberMap.Data.Index; } } @@ -237,12 +237,12 @@ public virtual int ReIndex( int indexStart = 0 ) /// Options for auto mapping. /// The list of parents for the map. /// The index starting point. - protected virtual void AutoMapProperties( ClassMap map, AutoMapOptions options, LinkedList mapParents, int indexStart = 0 ) + protected virtual void AutoMapMembers( ClassMap map, AutoMapOptions options, LinkedList mapParents, int indexStart = 0 ) { var type = map.GetGenericType(); var flags = BindingFlags.Instance | BindingFlags.Public; - if( options.IncludePrivateProperties ) + if( options.IncludePrivateMembers ) { flags = flags | BindingFlags.NonPublic; } @@ -310,12 +310,12 @@ protected virtual void AutoMapProperties( ClassMap map, AutoMapOptions options, var refOptions = options.Copy(); refOptions.IgnoreReferences = false; // Need to use Max here for nested types. - AutoMapProperties( refMap, options, mapParents, Math.Max( map.GetMaxIndex() + 1, indexStart ) ); + AutoMapMembers( refMap, options, mapParents, Math.Max( map.GetMaxIndex() + 1, indexStart ) ); mapParents.Drop( mapParents.Find( type ) ); - if( refMap.PropertyMaps.Count > 0 || refMap.ReferenceMaps.Count > 0 ) + if( refMap.MemberMaps.Count > 0 || refMap.ReferenceMaps.Count > 0 ) { - var referenceMap = new PropertyReferenceMap( member, refMap ); + var referenceMap = new MemberReferenceMap( member, refMap ); if( options.PrefixReferenceHeaders ) { referenceMap.Prefix(); @@ -326,16 +326,16 @@ protected virtual void AutoMapProperties( ClassMap map, AutoMapOptions options, } else { - var propertyMap = PropertyMap.CreateGeneric( map.ClassType, member ); + var memberMap = MemberMap.CreateGeneric( map.ClassType, member ); // Use global values as the starting point. - propertyMap.Data.TypeConverterOptions = TypeConverterOptions.Merge( new TypeConverterOptions(), options.TypeConverterOptionsFactory.GetOptions( member.MemberType() ), propertyMap.Data.TypeConverterOptions ); - propertyMap.Data.Index = map.GetMaxIndex() + 1; + memberMap.Data.TypeConverterOptions = TypeConverterOptions.Merge( new TypeConverterOptions(), options.TypeConverterOptionsFactory.GetOptions( member.MemberType() ), memberMap.Data.TypeConverterOptions ); + memberMap.Data.Index = map.GetMaxIndex() + 1; if( !isDefaultConverter ) { - // Only add the property/field map if it can be converted later on. - // If the property/field will use the default converter, don't add it because + // Only add the member map if it can be converted later on. + // If the member will use the default converter, don't add it because // we don't want the .ToString() value to be used when auto mapping. - map.PropertyMaps.Add( propertyMap ); + map.MemberMaps.Add( memberMap ); } } } @@ -374,7 +374,7 @@ protected virtual void AutoMapConstructorParameters( ClassMap map, AutoMapOption { throw new InvalidOperationException( $"Configuration '{nameof( options.IgnoreReferences )}' can't be true " + "when using types without a default constructor. Constructor parameters " + - "are used and all properties including references must be used." ); + "are used and all members including references must be used." ); } if( CheckForCircularReference( parameter.ParameterType, mapParents ) ) @@ -388,7 +388,7 @@ protected virtual void AutoMapConstructorParameters( ClassMap map, AutoMapOption var refMap = (ClassMap)ReflectionHelper.CreateInstance( refMapType ); var refOptions = options.Copy(); refOptions.IgnoreReferences = false; - AutoMapProperties( refMap, options, mapParents, Math.Max( map.GetMaxIndex() + 1, indexStart ) ); + AutoMapMembers( refMap, options, mapParents, Math.Max( map.GetMaxIndex() + 1, indexStart ) ); mapParents.Drop( mapParents.Find( type ) ); var referenceMap = new ParameterReferenceMap( parameter, refMap ); diff --git a/src/CsvHelper/Configuration/ClassMapBuilder.cs b/src/CsvHelper/Configuration/ClassMapBuilder.cs index 653fe5187..3a712c300 100644 --- a/src/CsvHelper/Configuration/ClassMapBuilder.cs +++ b/src/CsvHelper/Configuration/ClassMapBuilder.cs @@ -16,71 +16,71 @@ namespace CsvHelper.Configuration public interface IHasMap : IBuildableClass { /// - /// Maps a property/field to a CSV field. + /// Maps a member to a CSV field. /// - /// The property/field to map. + /// The member to map. /// If true, an existing map will be used if available. - /// If false, a new map is created for the same property/field. - /// The property/field mapping. - IHasMapOptions Map( Expression> expression, bool useExistingMap = true ); + /// If false, a new map is created for the same member. + /// The member mapping. + IHasMapOptions Map( Expression> expression, bool useExistingMap = true ); } /// /// Options after a mapping call. /// /// The class type. - /// The property type. - public interface IHasMapOptions : + /// The member type. + public interface IHasMapOptions : IHasMap, - IHasTypeConverter, - IHasIndex, - IHasName, - IHasConvertUsing, - IHasDefault, - IHasConstant, - IHasValidate + IHasTypeConverter, + IHasIndex, + IHasName, + IHasConvertUsing, + IHasDefault, + IHasConstant, + IHasValidate { } /// /// Has type converter capabilities. /// /// The class type. - /// The property type. - public interface IHasTypeConverter : IBuildableClass + /// The member type. + public interface IHasTypeConverter : IBuildableClass { /// /// Specifies the to use - /// when converting the property/field to and from a CSV field. + /// when converting the member to and from a CSV field. /// /// The TypeConverter to use. - IHasTypeConverterOptions TypeConverter( ITypeConverter typeConverter ); + IHasTypeConverterOptions TypeConverter( ITypeConverter typeConverter ); /// /// Specifies the to use - /// when converting the property/field to and from a CSV field. + /// when converting the member to and from a CSV field. /// /// The of the /// to use. - IHasTypeConverterOptions TypeConverter() where TConverter : ITypeConverter; + IHasTypeConverterOptions TypeConverter() where TConverter : ITypeConverter; } /// /// Options after a type converter call. /// /// The class type. - /// The property type. - public interface IHasTypeConverterOptions : + /// The member type. + public interface IHasTypeConverterOptions : IHasMap, - IHasDefault, - IHasValidate + IHasDefault, + IHasValidate { } /// /// Has index capabilities. /// /// The class type. - /// The property type. - public interface IHasIndex : IBuildableClass + /// The member type. + public interface IHasIndex : IBuildableClass { /// /// When reading, is used to get the field at @@ -89,29 +89,29 @@ public interface IHasIndex : IBuildableClass /// indexes. /// /// The index of the CSV field. - /// The end index used when mapping to an property/field. - IHasIndexOptions Index( int index, int indexEnd = -1 ); + /// The end index used when mapping to an member. + IHasIndexOptions Index( int index, int indexEnd = -1 ); } /// /// Options after an index call. /// /// The class type. - /// The property type. - public interface IHasIndexOptions : + /// The member type. + public interface IHasIndexOptions : IHasMap, - IHasTypeConverter, - IHasName, - IHasDefault, - IHasValidate + IHasTypeConverter, + IHasName, + IHasDefault, + IHasValidate { } /// /// Has name capabilities. /// /// The class type. - /// The property type. - public interface IHasName : IBuildableClass + /// The member type. + public interface IHasName : IBuildableClass { /// /// When reading, is used to get the field @@ -123,28 +123,28 @@ public interface IHasName : IBuildableClass /// The first name will be used. /// /// The possible names of the CSV field. - IHasNameOptions Name( params string[] names ); + IHasNameOptions Name( params string[] names ); } /// /// Options after a name call. /// /// The class type. - /// The property type. - public interface IHasNameOptions : + /// The member type. + public interface IHasNameOptions : IHasMap, - IHasTypeConverter, - IHasNameIndex, - IHasDefault, - IHasValidate + IHasTypeConverter, + IHasNameIndex, + IHasDefault, + IHasValidate { } /// /// Has name index capabilities. /// /// The class type. - /// The property type. - public interface IHasNameIndex : IBuildableClass + /// The member type. + public interface IHasNameIndex : IBuildableClass { /// /// When reading, is used to get the @@ -152,34 +152,34 @@ public interface IHasNameIndex : IBuildableClass /// are multiple names that are the same. /// /// The index of the name. - IHasNameIndexOptions NameIndex( int index ); + IHasNameIndexOptions NameIndex( int index ); } /// /// Options after a name index call. /// /// The class type. - /// The property type. - public interface IHasNameIndexOptions : + /// The member type. + public interface IHasNameIndexOptions : IHasMap, - IHasTypeConverter, - IHasDefault, - IHasValidate + IHasTypeConverter, + IHasDefault, + IHasValidate { } /// /// Has convert using capabilities. /// /// The class type. - /// The property type. - public interface IHasConvertUsing : IBuildableClass + /// The member type. + public interface IHasConvertUsing : IBuildableClass { /// /// Specifies an expression to be used to convert data in the - /// row to the property/field. + /// row to the member. /// /// The convert expression. - IHasMap ConvertUsing( Func convertExpression ); + IHasMap ConvertUsing( Func convertExpression ); /// /// Specifies an expression to be used to convert the object @@ -193,15 +193,15 @@ public interface IHasConvertUsing : IBuildableClass /// Has default capabilities. /// /// The class type. - /// The property type. - public interface IHasDefault : IBuildableClass + /// The member type. + public interface IHasDefault : IBuildableClass { /// /// The default value that will be used when reading when /// the CSV field is empty. /// /// The default value. - IHasDefaultOptions Default( TProperty defaultValue ); + IHasDefaultOptions Default( TMember defaultValue ); /// /// The default value that will be used when reading when @@ -210,25 +210,25 @@ public interface IHasDefault : IBuildableClass /// the field. This could potentially have runtime errors. /// /// The default value. - IHasDefaultOptions Default( string defaultValue ); + IHasDefaultOptions Default( string defaultValue ); } /// /// Options after a default call. /// /// The class type. - /// The property type. - public interface IHasDefaultOptions : + /// The member type. + public interface IHasDefaultOptions : IHasMap, - IHasValidate + IHasValidate { } /// /// Has constant capabilities. /// /// The class type. - /// The property type. - public interface IHasConstant : IBuildableClass + /// The member type. + public interface IHasConstant : IBuildableClass { /// /// The constant value that will be used for every record when @@ -236,15 +236,15 @@ public interface IHasConstant : IBuildableClass /// what other mapping configurations are specified. /// /// The constant value. - IHasMap Constant( TProperty value ); + IHasMap Constant( TMember value ); } /// /// Has validate capabilities. /// /// The class type. - /// The property type. - public interface IHasValidate : IBuildableClass + /// The member type. + public interface IHasValidate : IBuildableClass { /// /// The validate expression that will be called on every field when reading. @@ -277,9 +277,9 @@ public ClassMapBuilder() map = new BuilderClassMap(); } - public IHasMapOptions Map( Expression> expression, bool useExistingMap = true ) + public IHasMapOptions Map( Expression> expression, bool useExistingMap = true ) { - return new PropertyMapBuilder( map, map.Map( expression, useExistingMap ) ); + return new MemberMapBuilder( map, map.Map( expression, useExistingMap ) ); } public ClassMap Build() @@ -290,102 +290,102 @@ public ClassMap Build() private class BuilderClassMap : ClassMap { } } - internal class PropertyMapBuilder : + internal class MemberMapBuilder : IHasMap, - IHasMapOptions, - IHasTypeConverter, - IHasTypeConverterOptions, - IHasIndex, - IHasIndexOptions, - IHasName, - IHasNameOptions, - IHasNameIndex, - IHasNameIndexOptions, - IHasConvertUsing, - IHasDefault, - IHasDefaultOptions, - IHasConstant, - IHasValidate + IHasMapOptions, + IHasTypeConverter, + IHasTypeConverterOptions, + IHasIndex, + IHasIndexOptions, + IHasName, + IHasNameOptions, + IHasNameIndex, + IHasNameIndexOptions, + IHasConvertUsing, + IHasDefault, + IHasDefaultOptions, + IHasConstant, + IHasValidate { private readonly ClassMap classMap; - private readonly PropertyMap propertyMap; + private readonly MemberMap memberMap; - public PropertyMapBuilder( ClassMap classMap, PropertyMap propertyMap ) + public MemberMapBuilder( ClassMap classMap, MemberMap memberMap ) { this.classMap = classMap; - this.propertyMap = propertyMap; + this.memberMap = memberMap; } #pragma warning disable CS0693 // Type parameter has the same name as the type parameter from outer type - public IHasMapOptions Map( Expression> expression, bool useExistingMap = true ) + public IHasMapOptions Map( Expression> expression, bool useExistingMap = true ) { - return new PropertyMapBuilder( classMap, classMap.Map( expression, useExistingMap ) ); + return new MemberMapBuilder( classMap, classMap.Map( expression, useExistingMap ) ); } #pragma warning restore CS0693 // Type parameter has the same name as the type parameter from outer type - public IHasMap ConvertUsing( Func convertExpression ) + public IHasMap ConvertUsing( Func convertExpression ) { - propertyMap.ConvertUsing( convertExpression ); + memberMap.ConvertUsing( convertExpression ); return this; } public IHasMap ConvertUsing( Func convertExpression ) { - propertyMap.ConvertUsing( convertExpression ); + memberMap.ConvertUsing( convertExpression ); return this; } - public IHasDefaultOptions Default( TProperty defaultValue ) + public IHasDefaultOptions Default( TMember defaultValue ) { - propertyMap.Default( defaultValue ); + memberMap.Default( defaultValue ); return this; } - public IHasDefaultOptions Default( string defaultValue ) + public IHasDefaultOptions Default( string defaultValue ) { - propertyMap.Default( defaultValue ); + memberMap.Default( defaultValue ); return this; } - public IHasIndexOptions Index( int index, int indexEnd = -1 ) + public IHasIndexOptions Index( int index, int indexEnd = -1 ) { - propertyMap.Index( index, indexEnd ); + memberMap.Index( index, indexEnd ); return this; } - public IHasNameOptions Name( params string[] names ) + public IHasNameOptions Name( params string[] names ) { - propertyMap.Name( names ); + memberMap.Name( names ); return this; } - public IHasNameIndexOptions NameIndex( int index ) + public IHasNameIndexOptions NameIndex( int index ) { - propertyMap.NameIndex( index ); + memberMap.NameIndex( index ); return this; } - public IHasTypeConverterOptions TypeConverter( ITypeConverter typeConverter ) + public IHasTypeConverterOptions TypeConverter( ITypeConverter typeConverter ) { - propertyMap.TypeConverter( typeConverter ); + memberMap.TypeConverter( typeConverter ); return this; } - public IHasTypeConverterOptions TypeConverter() where TConverter : ITypeConverter + public IHasTypeConverterOptions TypeConverter() where TConverter : ITypeConverter { - propertyMap.TypeConverter(); + memberMap.TypeConverter(); return this; } - public IHasMap Constant( TProperty value ) + public IHasMap Constant( TMember value ) { - propertyMap.Constant( value ); + memberMap.Constant( value ); return this; } public IHasMap Validate( Func validateExpression ) { - propertyMap.Validate( validateExpression ); + memberMap.Validate( validateExpression ); return this; } diff --git a/src/CsvHelper/Configuration/ClassMap`1.cs b/src/CsvHelper/Configuration/ClassMap`1.cs index 5e056d8ec..45affa6bf 100644 --- a/src/CsvHelper/Configuration/ClassMap`1.cs +++ b/src/CsvHelper/Configuration/ClassMap`1.cs @@ -13,7 +13,7 @@ namespace CsvHelper.Configuration { /// - /// Maps class properties/fields to CSV fields. + /// Maps class members to CSV fields. /// /// The of class to map. public abstract class ClassMap : ClassMap @@ -38,18 +38,18 @@ public virtual void ConstructUsing( Expression> expression ) } /// - /// Maps a property/field to a CSV field. + /// Maps a member to a CSV field. /// - /// The property/field to map. + /// The member to map. /// If true, an existing map will be used if available. - /// If false, a new map is created for the same property/field. - /// The property/field mapping. - public virtual PropertyMap Map( Expression> expression, bool useExistingMap = true ) + /// If false, a new map is created for the same member. + /// The member mapping. + public virtual MemberMap Map( Expression> expression, bool useExistingMap = true ) { var stack = ReflectionHelper.GetMembers( expression ); if( stack.Count == 0 ) { - throw new InvalidOperationException( "No properties/fields were found in expression '{expression}'." ); + throw new InvalidOperationException( "No members were found in expression '{expression}'." ); } ClassMap currentClassMap = this; @@ -57,7 +57,7 @@ public virtual void ConstructUsing( Expression> expression ) if( stack.Count > 1 ) { - // We need to add a reference map for every sub property/field. + // We need to add a reference map for every sub member. while( stack.Count > 1 ) { member = stack.Pop(); @@ -82,23 +82,23 @@ public virtual void ConstructUsing( Expression> expression ) } } - // Add the property/field map to the last reference map. + // Add the member map to the last reference map. member = stack.Pop(); - return (PropertyMap)currentClassMap.Map( typeof( TClass ), member, useExistingMap ); + return (MemberMap)currentClassMap.Map( typeof( TClass ), member, useExistingMap ); } /// - /// Maps a property/field to another class map. + /// Maps a member to another class map. /// /// The type of the class map. /// The expression. /// Constructor arguments used to create the reference map. - /// The reference mapping for the property/field. - public virtual PropertyReferenceMap References( Expression> expression, params object[] constructorArgs ) where TClassMap : ClassMap + /// The reference mapping for the member. + public virtual MemberReferenceMap References( Expression> expression, params object[] constructorArgs ) where TClassMap : ClassMap { - var property = ReflectionHelper.GetMember( expression ); - return References( typeof( TClassMap ), property, constructorArgs ); + var member = ReflectionHelper.GetMember( expression ); + return References( typeof( TClassMap ), member, constructorArgs ); } } } diff --git a/src/CsvHelper/Configuration/Configuration.cs b/src/CsvHelper/Configuration/Configuration.cs index 64c41bf49..4744dc2d0 100644 --- a/src/CsvHelper/Configuration/Configuration.cs +++ b/src/CsvHelper/Configuration/Configuration.cs @@ -46,7 +46,7 @@ public class Configuration : IReaderConfiguration, IWriterConfiguration /// /// Gets or sets a value indicating if an exception should be thrown if the header is bad. - /// A header is bad if all the mapped properties don't match. + /// A header is bad if all the mapped members don't match. /// public virtual bool ThrowOnBadHeader { get; set; } = true; @@ -69,8 +69,8 @@ public class Configuration : IReaderConfiguration, IWriterConfiguration public virtual bool DetectColumnCountChanges { get; set; } /// - /// Prepares the header field for matching against a property/field name. - /// The header field and the property/field name are both ran through this function. + /// Prepares the header field for matching against a member name. + /// The header field and the member name are both ran through this function. /// You should do things like trimming, removing whitespace, removing underscores, /// and making casing changes to ignore case. /// @@ -78,7 +78,7 @@ public class Configuration : IReaderConfiguration, IWriterConfiguration /// /// Determines if constructor parameters should be used to create - /// the class instead of the default constructor and properties. + /// the class instead of the default constructor and members. /// public virtual Func ShouldUseConstructorParameters { get; set; } = type => !type.HasParameterlessConstructor() @@ -306,8 +306,8 @@ public virtual CultureInfo CultureInfo /// /// Gets or sets a value indicating if private - /// properties/fields should be read from and written to. - /// True to include private properties/fields, otherwise false. Default is false. + /// member should be read from and written to. + /// True to include private member, otherwise false. Default is false. /// public virtual bool IncludePrivateMembers { get; set; } @@ -327,7 +327,7 @@ public virtual CultureInfo CultureInfo /// /// Gets or sets a value indicating if headers of reference - /// properties/fields should get prefixed by the parent property/field + /// member should get prefixed by the parent member /// name when automapping. /// True to prefix, otherwise false. Default is false. /// @@ -375,10 +375,10 @@ public virtual CultureInfo CultureInfo /// /// Gets or sets a value indicating that during writing if a new - /// object should be created when a reference property/field is null. + /// object should be created when a reference member is null. /// True to create a new object and use it's defaults for the /// fields, or false to leave the fields empty for all the - /// reference property/field's properties/fields. + /// reference member's member. /// public virtual bool UseNewObjectForNullReferenceMembers { get; set; } = true; @@ -398,8 +398,8 @@ public Configuration() /// /// Use a to configure mappings. - /// When using a class map, no properties/fields are mapped by default. - /// Only properties/fields specified in the mapping are used. + /// When using a class map, no members are mapped by default. + /// Only member specified in the mapping are used. /// /// The type of mapping class to use. public virtual TMap RegisterClassMap() where TMap : ClassMap @@ -412,8 +412,8 @@ public Configuration() /// /// Use a to configure mappings. - /// When using a class map, no properties/fields are mapped by default. - /// Only properties/fields specified in the mapping are used. + /// When using a class map, no members are mapped by default. + /// Only members specified in the mapping are used. /// /// The type of mapping class to use. public virtual ClassMap RegisterClassMap( Type classMapType ) @@ -435,7 +435,7 @@ public virtual ClassMap RegisterClassMap( Type classMapType ) /// The class map to register. public virtual void RegisterClassMap( ClassMap map ) { - if( map.Constructor == null && map.PropertyMaps.Count == 0 && map.ReferenceMaps.Count == 0 ) + if( map.Constructor == null && map.MemberMaps.Count == 0 && map.ReferenceMaps.Count == 0 ) { throw new ConfigurationException( "No mappings were specified in the CsvClassMap." ); } diff --git a/src/CsvHelper/Configuration/IReaderConfiguration.cs b/src/CsvHelper/Configuration/IReaderConfiguration.cs index 74556f484..150f3a53f 100644 --- a/src/CsvHelper/Configuration/IReaderConfiguration.cs +++ b/src/CsvHelper/Configuration/IReaderConfiguration.cs @@ -31,7 +31,7 @@ public interface IReaderConfiguration : IParserConfiguration /// /// Gets or sets a value indicating if an exception should be thrown if the header is bad. - /// A header is bad if all the mapped properties don't match. + /// A header is bad if all the mapped members don't match. /// bool ThrowOnBadHeader { get; set; } @@ -51,8 +51,8 @@ public interface IReaderConfiguration : IParserConfiguration TypeConverterFactory TypeConverterFactory { get; set; } /// - /// Prepares the header field for matching against a property/field name. - /// The header field and the property/field name are both ran through this function. + /// Prepares the header field for matching against a member name. + /// The header field and the member name are both ran through this function. /// You should do things like trimming, removing whitespace, removing underscores, /// and making casing changes to ignore case. /// @@ -60,7 +60,7 @@ public interface IReaderConfiguration : IParserConfiguration /// /// Determines if constructor parameters should be used to create - /// the class instead of the default constructor and properties. + /// the class instead of the default constructor and members. /// Func ShouldUseConstructorParameters { get; set; } @@ -87,14 +87,14 @@ public interface IReaderConfiguration : IParserConfiguration /// /// Gets or sets a value indicating if private - /// properties/fields should be read from and written to. - /// True to include private properties/fields, otherwise false. Default is false. + /// member should be read from and written to. + /// True to include private member, otherwise false. Default is false. /// bool IncludePrivateMembers { get; set; } /// /// Gets or sets a value indicating if headers of reference - /// properties/fields should get prefixed by the parent property/field name + /// member should get prefixed by the parent member name /// when automapping. /// True to prefix, otherwise false. Default is false. /// @@ -137,21 +137,21 @@ public interface IReaderConfiguration : IParserConfiguration /// ClassMapCollection Maps { get; } - /// - /// Use a to configure mappings. - /// When using a class map, no properties/fields are mapped by default. - /// Only properties/fields specified in the mapping are used. - /// - /// The type of mapping class to use. - TMap RegisterClassMap() where TMap : ClassMap; + /// + /// Use a to configure mappings. + /// When using a class map, no members are mapped by default. + /// Only member specified in the mapping are used. + /// + /// The type of mapping class to use. + TMap RegisterClassMap() where TMap : ClassMap; - /// - /// Use a to configure mappings. - /// When using a class map, no properties/fields are mapped by default. - /// Only properties/fields specified in the mapping are used. - /// - /// The type of mapping class to use. - ClassMap RegisterClassMap( Type classMapType ); + /// + /// Use a to configure mappings. + /// When using a class map, no member are mapped by default. + /// Only member specified in the mapping are used. + /// + /// The type of mapping class to use. + ClassMap RegisterClassMap( Type classMapType ); /// /// Registers the class map. diff --git a/src/CsvHelper/Configuration/IWriterConfiguration.cs b/src/CsvHelper/Configuration/IWriterConfiguration.cs index 6925e6e26..9e72f176c 100644 --- a/src/CsvHelper/Configuration/IWriterConfiguration.cs +++ b/src/CsvHelper/Configuration/IWriterConfiguration.cs @@ -103,14 +103,14 @@ public interface IWriterConfiguration : ISerializerConfiguration /// /// Gets or sets a value indicating if private - /// properties/fields should be read from and written to. - /// True to include private properties/fields, otherwise false. Default is false. + /// member should be read from and written to. + /// True to include private member, otherwise false. Default is false. /// bool IncludePrivateMembers { get; set; } /// /// Gets or sets a value indicating if headers of reference - /// properties/fields should get prefixed by the parent property/field name + /// member should get prefixed by the parent member name /// when automapping. /// True to prefix, otherwise false. Default is false. /// @@ -130,19 +130,19 @@ public interface IWriterConfiguration : ISerializerConfiguration /// /// Use a to configure mappings. - /// When using a class map, no properties/fields are mapped by default. - /// Only properties/fields specified in the mapping are used. + /// When using a class map, no member are mapped by default. + /// Only member specified in the mapping are used. /// /// The type of mapping class to use. TMap RegisterClassMap() where TMap : ClassMap; - /// - /// Use a to configure mappings. - /// When using a class map, no properties/fields are mapped by default. - /// Only properties/fields specified in the mapping are used. - /// - /// The type of mapping class to use. - ClassMap RegisterClassMap( Type classMapType ); + /// + /// Use a to configure mappings. + /// When using a class map, no member are mapped by default. + /// Only member specified in the mapping are used. + /// + /// The type of mapping class to use. + ClassMap RegisterClassMap( Type classMapType ); /// /// Registers the class map. @@ -183,10 +183,10 @@ public interface IWriterConfiguration : ISerializerConfiguration /// /// Gets or sets a value indicating that during writing if a new - /// object should be created when a reference property/field is null. + /// object should be created when a reference member is null. /// True to create a new object and use it's defaults for the /// fields, or false to leave the fields empty for all the - /// reference property/field's properties/fields. + /// reference member's member. /// bool UseNewObjectForNullReferenceMembers { get; set; } } diff --git a/src/CsvHelper/Configuration/MapTypeConverterOption.cs b/src/CsvHelper/Configuration/MapTypeConverterOption.cs index c12e0f8b9..1b53d9390 100644 --- a/src/CsvHelper/Configuration/MapTypeConverterOption.cs +++ b/src/CsvHelper/Configuration/MapTypeConverterOption.cs @@ -10,19 +10,19 @@ namespace CsvHelper.Configuration { /// - /// Sets type converter options on a property/field map. + /// Sets type converter options on a member map. /// - public class MapTypeConverterOption + public class MapTypeConverterOption { - private readonly PropertyMap propertyMap; + private readonly MemberMap memberMap; /// - /// Creates a new instance using the given . + /// Creates a new instance using the given . /// - /// The property/field map the options are being applied to. - public MapTypeConverterOption( PropertyMap propertyMap ) + /// The member map the options are being applied to. + public MapTypeConverterOption( MemberMap memberMap ) { - this.propertyMap = propertyMap; + this.memberMap = memberMap; } /// @@ -31,11 +31,11 @@ public MapTypeConverterOption( PropertyMap propertyMap ) /// setting. /// /// The culture info. - public virtual PropertyMap CultureInfo( CultureInfo cultureInfo ) + public virtual MemberMap CultureInfo( CultureInfo cultureInfo ) { - propertyMap.Data.TypeConverterOptions.CultureInfo = cultureInfo; + memberMap.Data.TypeConverterOptions.CultureInfo = cultureInfo; - return propertyMap; + return memberMap; } /// @@ -43,11 +43,11 @@ public virtual PropertyMap CultureInfo( CultureInfo cultureInfo ) /// This is used when doing any conversions. /// /// The date time style. - public virtual PropertyMap DateTimeStyles( DateTimeStyles dateTimeStyle ) + public virtual MemberMap DateTimeStyles( DateTimeStyles dateTimeStyle ) { - propertyMap.Data.TypeConverterOptions.DateTimeStyle = dateTimeStyle; + memberMap.Data.TypeConverterOptions.DateTimeStyle = dateTimeStyle; - return propertyMap; + return memberMap; } /// @@ -55,22 +55,22 @@ public virtual PropertyMap DateTimeStyles( DateTimeStyles dateTimeStyle ) /// This is used when doing any number conversions. /// /// - public virtual PropertyMap NumberStyles( NumberStyles numberStyle ) + public virtual MemberMap NumberStyles( NumberStyles numberStyle ) { - propertyMap.Data.TypeConverterOptions.NumberStyle = numberStyle; + memberMap.Data.TypeConverterOptions.NumberStyle = numberStyle; - return propertyMap; + return memberMap; } /// /// The string format to be used when type converting. /// /// The format. - public virtual PropertyMap Format( params string[] formats ) + public virtual MemberMap Format( params string[] formats ) { - propertyMap.Data.TypeConverterOptions.Formats = formats; + memberMap.Data.TypeConverterOptions.Formats = formats; - return propertyMap; + return memberMap; } /// @@ -79,28 +79,28 @@ public virtual PropertyMap Format( params string[] formats ) /// A value indicating whether true values or false values are being set. /// A value indication if the current values should be cleared before adding the new ones. /// The string boolean values. - public virtual PropertyMap BooleanValues( bool isTrue, bool clearValues = true, params string[] booleanValues ) + public virtual MemberMap BooleanValues( bool isTrue, bool clearValues = true, params string[] booleanValues ) { if( isTrue ) { if( clearValues ) { - propertyMap.Data.TypeConverterOptions.BooleanTrueValues.Clear(); + memberMap.Data.TypeConverterOptions.BooleanTrueValues.Clear(); } - propertyMap.Data.TypeConverterOptions.BooleanTrueValues.AddRange( booleanValues ); + memberMap.Data.TypeConverterOptions.BooleanTrueValues.AddRange( booleanValues ); } else { if( clearValues ) { - propertyMap.Data.TypeConverterOptions.BooleanFalseValues.Clear(); + memberMap.Data.TypeConverterOptions.BooleanFalseValues.Clear(); } - propertyMap.Data.TypeConverterOptions.BooleanFalseValues.AddRange( booleanValues ); + memberMap.Data.TypeConverterOptions.BooleanFalseValues.AddRange( booleanValues ); } - return propertyMap; + return memberMap; } /// @@ -108,7 +108,7 @@ public virtual PropertyMap BooleanValues( bool isTrue, bool clearValues = true, /// /// The values that represent null. /// - public virtual PropertyMap NullValues( params string[] nullValues ) + public virtual MemberMap NullValues( params string[] nullValues ) { return NullValues( true, nullValues ); } @@ -119,16 +119,16 @@ public virtual PropertyMap NullValues( params string[] nullValues ) /// A value indication if the current values should be cleared before adding the new ones. /// The values that represent null. /// - public virtual PropertyMap NullValues( bool clearValues, params string[] nullValues ) + public virtual MemberMap NullValues( bool clearValues, params string[] nullValues ) { if( clearValues ) { - propertyMap.Data.TypeConverterOptions.NullValues.Clear(); + memberMap.Data.TypeConverterOptions.NullValues.Clear(); } - propertyMap.Data.TypeConverterOptions.NullValues.AddRange( nullValues ); + memberMap.Data.TypeConverterOptions.NullValues.AddRange( nullValues ); - return propertyMap; + return memberMap; } } } diff --git a/src/CsvHelper/Configuration/PropertyMap.cs b/src/CsvHelper/Configuration/MemberMap.cs similarity index 56% rename from src/CsvHelper/Configuration/PropertyMap.cs rename to src/CsvHelper/Configuration/MemberMap.cs index 9b95d7f6f..c528ad5ad 100644 --- a/src/CsvHelper/Configuration/PropertyMap.cs +++ b/src/CsvHelper/Configuration/MemberMap.cs @@ -15,15 +15,15 @@ namespace CsvHelper.Configuration { /// - /// Mapping info for a property/field to a CSV field. + /// Mapping info for a member to a CSV field. /// - [DebuggerDisplay( "Member = {Data.Member}, Names = {string.Join(\",\", Data.Names)}, Index = {Data.Index}, Ignore = {Data.Ignore}, Property = {Data.Property}, TypeConverter = {Data.TypeConverter}" )] - public abstract class PropertyMap + [DebuggerDisplay( "Member = {Data.Member}, Names = {string.Join(\",\", Data.Names)}, Index = {Data.Index}, Ignore = {Data.Ignore}, Member = {Data.Member}, TypeConverter = {Data.TypeConverter}" )] + public abstract class MemberMap { /// - /// Gets the property/field map data. + /// Gets the member map data. /// - public virtual PropertyMapData Data { get; protected set; } + public virtual MemberMapData Data { get; protected set; } /// /// Type converter options. @@ -31,16 +31,16 @@ public abstract class PropertyMap public virtual MapTypeConverterOption TypeConverterOption { get; protected set; } /// - /// Creates an instance of using the given Type and . + /// Creates an instance of using the given Type and . /// - /// Type of the class the property being mapped belongs to. + /// Type of the class the member being mapped belongs to. /// The member being mapped. - public static PropertyMap CreateGeneric( Type classType, MemberInfo member ) + public static MemberMap CreateGeneric( Type classType, MemberInfo member ) { - var propertyMapType = typeof( PropertyMap<,> ).MakeGenericType( classType, member.MemberType() ); - var propertyMap = (PropertyMap)ReflectionHelper.CreateInstance( propertyMapType, member ); + var memberMapType = typeof( MemberMap<,> ).MakeGenericType( classType, member.MemberType() ); + var memberMap = (MemberMap)ReflectionHelper.CreateInstance( memberMapType, member ); - return propertyMap; + return memberMap; } } } diff --git a/src/CsvHelper/Configuration/PropertyMapCollection.cs b/src/CsvHelper/Configuration/MemberMapCollection.cs similarity index 79% rename from src/CsvHelper/Configuration/PropertyMapCollection.cs rename to src/CsvHelper/Configuration/MemberMapCollection.cs index 7d2b68d38..5cb3ee00d 100644 --- a/src/CsvHelper/Configuration/PropertyMapCollection.cs +++ b/src/CsvHelper/Configuration/MemberMapCollection.cs @@ -13,13 +13,13 @@ namespace CsvHelper.Configuration { /// - /// A collection that holds 's. + /// A collection that holds 's. /// [DebuggerDisplay( "Count = {list.Count}" )] - public class PropertyMapCollection : IList + public class MemberMapCollection : IList { - private readonly List list = new List(); - private readonly IComparer comparer; + private readonly List list = new List(); + private readonly IComparer comparer; /// /// Gets the number of elements contained in the . @@ -38,15 +38,15 @@ public class PropertyMapCollection : IList public virtual bool IsReadOnly => false; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// - public PropertyMapCollection() : this( new PropertyMapComparer() ) {} + public MemberMapCollection() : this( new MemberMapComparer() ) {} /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// - /// The comparer to use when sorting the property/field maps. - public PropertyMapCollection( IComparer comparer ) + /// The comparer to use when sorting the member maps. + public MemberMapCollection( IComparer comparer ) { this.comparer = comparer; } @@ -58,7 +58,7 @@ public PropertyMapCollection( IComparer comparer ) /// A that can be used to iterate through the collection. /// /// 1 - public virtual IEnumerator GetEnumerator() + public virtual IEnumerator GetEnumerator() { return list.GetEnumerator(); } @@ -81,7 +81,7 @@ IEnumerator IEnumerable.GetEnumerator() /// The object to add to the . /// The is read-only. /// - public virtual void Add( PropertyMap item ) + public virtual void Add( MemberMap item ) { list.Add( item ); list.Sort( comparer ); @@ -91,7 +91,7 @@ public virtual void Add( PropertyMap item ) /// Adds a range of items to the . /// /// The collection to add. - public virtual void AddRange( ICollection collection ) + public virtual void AddRange( ICollection collection ) { list.AddRange( collection ); list.Sort( comparer ); @@ -115,7 +115,7 @@ public virtual void Clear() /// /// The object to locate in the . /// - public virtual bool Contains( PropertyMap item ) + public virtual bool Contains( MemberMap item ) { return list.Contains( item ); } @@ -124,7 +124,7 @@ public virtual bool Contains( PropertyMap item ) /// Copies the elements of the to an , starting at a particular index. /// /// The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.The zero-based index in at which copying begins. is null. is less than 0.The number of elements in the source is greater than the available space from to the end of the destination . - public virtual void CopyTo( PropertyMap[] array, int arrayIndex ) + public virtual void CopyTo( MemberMap[] array, int arrayIndex ) { list.CopyTo( array, arrayIndex ); } @@ -138,7 +138,7 @@ public virtual void CopyTo( PropertyMap[] array, int arrayIndex ) /// The object to remove from the . /// The is read-only. /// - public virtual bool Remove( PropertyMap item ) + public virtual bool Remove( MemberMap item ) { return list.Remove( item ); } @@ -151,7 +151,7 @@ public virtual bool Remove( PropertyMap item ) /// /// The object to locate in the . /// - public virtual int IndexOf( PropertyMap item ) + public virtual int IndexOf( MemberMap item ) { return list.IndexOf( item ); } @@ -164,7 +164,7 @@ public virtual int IndexOf( PropertyMap item ) /// is not a valid index in the . /// The is read-only. /// - public virtual void Insert( int index, PropertyMap item ) + public virtual void Insert( int index, MemberMap item ) { list.Insert( index, item ); } @@ -189,32 +189,32 @@ public virtual void RemoveAt( int index ) /// /// The zero-based index of the element to get or set. /// is not a valid index in the . - /// The property/field is set and the is read-only. + /// The member is set and the is read-only. /// - public virtual PropertyMap this[int index] + public virtual MemberMap this[int index] { get { return list[index]; } set { list[index] = value; } } /// - /// Finds the using the given property/field expression. + /// Finds the using the given member expression. /// - /// The the property/field is on. - /// The property/field expression. - /// The for the given expression, or null if not found. - public virtual PropertyMap Find( Expression> expression ) + /// The the member is on. + /// The member expression. + /// The for the given expression, or null if not found. + public virtual MemberMap Find( Expression> expression ) { - var property = ReflectionHelper.GetMember( expression ); - return Find( property ); + var member = ReflectionHelper.GetMember( expression ); + return Find( member ); } /// - /// Finds the using the given property/field. + /// Finds the using the given member. /// - /// The property/field. - /// The for the given expression, or null if not found. - public virtual PropertyMap Find( MemberInfo member ) + /// The member. + /// The for the given expression, or null if not found. + public virtual MemberMap Find( MemberInfo member ) { var existingMap = list.SingleOrDefault( m => m.Data.Member == member || diff --git a/src/CsvHelper/Configuration/PropertyMapComparer.cs b/src/CsvHelper/Configuration/MemberMapComparer.cs similarity index 88% rename from src/CsvHelper/Configuration/PropertyMapComparer.cs rename to src/CsvHelper/Configuration/MemberMapComparer.cs index 3bb60799f..9a94e46d6 100644 --- a/src/CsvHelper/Configuration/PropertyMapComparer.cs +++ b/src/CsvHelper/Configuration/MemberMapComparer.cs @@ -8,12 +8,12 @@ namespace CsvHelper.Configuration { /// - /// Used to compare s. + /// Used to compare s. /// The order is by field index ascending. Any /// fields that don't have an index are pushed /// to the bottom. /// - internal class PropertyMapComparer : IComparer + internal class MemberMapComparer : IComparer { /// /// Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. @@ -36,9 +36,9 @@ internal class PropertyMapComparer : IComparer /// 2 public virtual int Compare( object x, object y ) { - var xProperty = x as PropertyMap; - var yProperty = y as PropertyMap; - return Compare( xProperty, yProperty ); + var xMember = x as MemberMap; + var yMember = y as MemberMap; + return Compare( xMember, yMember ); } /// @@ -57,7 +57,7 @@ public virtual int Compare( object x, object y ) /// The first object to compare. /// The second object to compare. /// - public virtual int Compare( PropertyMap x, PropertyMap y ) + public virtual int Compare( MemberMap x, MemberMap y ) { if( x == null ) { diff --git a/src/CsvHelper/Configuration/PropertyMapData.cs b/src/CsvHelper/Configuration/MemberMapData.cs similarity index 84% rename from src/CsvHelper/Configuration/PropertyMapData.cs rename to src/CsvHelper/Configuration/MemberMapData.cs index 02662d6d0..5748dab6d 100644 --- a/src/CsvHelper/Configuration/PropertyMapData.cs +++ b/src/CsvHelper/Configuration/MemberMapData.cs @@ -9,9 +9,9 @@ namespace CsvHelper.Configuration { /// - /// The configured data for the property/field map. + /// The configured data for the member map. /// - public class PropertyMapData + public class MemberMapData { /// /// Gets the that the data @@ -22,7 +22,7 @@ public class PropertyMapData /// /// Gets the list of column names. /// - public virtual PropertyNameCollection Names { get; } = new PropertyNameCollection(); + public virtual MemberNameCollection Names { get; } = new MemberNameCollection(); /// /// Gets or sets the index of the name. @@ -45,7 +45,7 @@ public class PropertyMapData /// /// Gets or sets the index end. The Index end is used to specify a range for use - /// with a collection property/field. Index is used as the start of the range, and IndexEnd + /// with a collection member. Index is used as the start of the range, and IndexEnd /// is the end of the range. /// public virtual int IndexEnd { get; set; } = -1; @@ -96,7 +96,7 @@ public class PropertyMapData /// /// Gets or sets the expression used to convert data in the - /// row to the property/field. + /// row to the member. /// public virtual Expression ReadingConvertExpression { get; set; } @@ -112,10 +112,10 @@ public class PropertyMapData public virtual Expression ValidateExpression { get; set; } /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// - /// The property/field. - public PropertyMapData( MemberInfo member ) + /// The member. + public MemberMapData( MemberInfo member ) { Member = member; } diff --git a/src/CsvHelper/Configuration/PropertyMap`1.cs b/src/CsvHelper/Configuration/MemberMap`1.cs similarity index 67% rename from src/CsvHelper/Configuration/PropertyMap`1.cs rename to src/CsvHelper/Configuration/MemberMap`1.cs index 1bbd12d8f..cc0c10de6 100644 --- a/src/CsvHelper/Configuration/PropertyMap`1.cs +++ b/src/CsvHelper/Configuration/MemberMap`1.cs @@ -11,18 +11,18 @@ namespace CsvHelper.Configuration { /// - /// Mapping info for a property/field to a CSV field. + /// Mapping info for a member to a CSV field. /// - public class PropertyMap : PropertyMap + public class MemberMap : MemberMap { /// - /// Creates a new instance using the specified property/field. + /// Creates a new instance using the specified member. /// - public PropertyMap( MemberInfo member ) + public MemberMap( MemberInfo member ) { TypeConverterOption = new MapTypeConverterOption( this ); - Data = new PropertyMapData( member ); + Data = new MemberMapData( member ); if( member == null ) { return; @@ -43,7 +43,7 @@ public PropertyMap( MemberInfo member ) /// The first name will be used. /// /// The possible names of the CSV field. - public virtual PropertyMap Name( params string[] names ) + public virtual MemberMap Name( params string[] names ) { if( names == null || names.Length == 0 ) { @@ -63,7 +63,7 @@ public PropertyMap( MemberInfo member ) /// are multiple names that are the same. /// /// The index of the name. - public virtual PropertyMap NameIndex( int index ) + public virtual MemberMap NameIndex( int index ) { Data.NameIndex = index; @@ -77,8 +77,8 @@ public PropertyMap( MemberInfo member ) /// indexes. /// /// The index of the CSV field. - /// The end index used when mapping to an property/field. - public virtual PropertyMap Index( int index, int indexEnd = -1 ) + /// The end index used when mapping to an member. + public virtual MemberMap Index( int index, int indexEnd = -1 ) { Data.Index = index; Data.IsIndexSet = true; @@ -88,13 +88,13 @@ public PropertyMap( MemberInfo member ) } /// - /// Ignore the property/field when reading and writing. - /// If this property has already been mapped as a reference - /// property, either by a class map, or by automapping, calling - /// this method will not ingore all the child properties down the + /// Ignore the member when reading and writing. + /// If this member has already been mapped as a reference + /// member, either by a class map, or by automapping, calling + /// this method will not ingore all the child members down the /// tree that have already been mapped. /// - public virtual PropertyMap Ignore() + public virtual MemberMap Ignore() { Data.Ignore = true; @@ -102,14 +102,14 @@ public PropertyMap( MemberInfo member ) } /// - /// Ignore the property/field when reading and writing. - /// If this property has already been mapped as a reference - /// property, either by a class map, or by automapping, calling - /// this method will not ingore all the child properties down the + /// Ignore the member when reading and writing. + /// If this member has already been mapped as a reference + /// member, either by a class map, or by automapping, calling + /// this method will not ingore all the child members down the /// tree that have already been mapped. /// /// True to ignore, otherwise false. - public virtual PropertyMap Ignore( bool ignore ) + public virtual MemberMap Ignore( bool ignore ) { Data.Ignore = ignore; @@ -121,7 +121,7 @@ public PropertyMap( MemberInfo member ) /// the CSV field is empty. /// /// The default value. - public virtual PropertyMap Default( TProperty defaultValue ) + public virtual MemberMap Default( TMember defaultValue ) { Data.Default = defaultValue; Data.IsDefaultSet = true; @@ -136,7 +136,7 @@ public PropertyMap( MemberInfo member ) /// the field. This could potentially have runtime errors. /// /// The default value. - public virtual PropertyMap Default( string defaultValue ) + public virtual MemberMap Default( string defaultValue ) { Data.Default = defaultValue; Data.IsDefaultSet = true; @@ -150,7 +150,7 @@ public PropertyMap( MemberInfo member ) /// what other mapping configurations are specified. /// /// The constant value. - public virtual PropertyMap Constant( TProperty constantValue ) + public virtual MemberMap Constant( TMember constantValue ) { Data.Constant = constantValue; Data.IsConstantSet = true; @@ -160,10 +160,10 @@ public PropertyMap( MemberInfo member ) /// /// Specifies the to use - /// when converting the property/field to and from a CSV field. + /// when converting the member to and from a CSV field. /// /// The TypeConverter to use. - public virtual PropertyMap TypeConverter( ITypeConverter typeConverter ) + public virtual MemberMap TypeConverter( ITypeConverter typeConverter ) { Data.TypeConverter = typeConverter; @@ -172,11 +172,11 @@ public PropertyMap( MemberInfo member ) /// /// Specifies the to use - /// when converting the property/field to and from a CSV field. + /// when converting the member to and from a CSV field. /// /// The of the /// to use. - public virtual PropertyMap TypeConverter() where TConverter : ITypeConverter + public virtual MemberMap TypeConverter() where TConverter : ITypeConverter { TypeConverter( ReflectionHelper.CreateInstance() ); @@ -185,12 +185,12 @@ public PropertyMap( MemberInfo member ) /// /// Specifies an expression to be used to convert data in the - /// row to the property/field. + /// row to the member. /// /// The convert expression. - public virtual PropertyMap ConvertUsing( Func convertExpression ) + public virtual MemberMap ConvertUsing( Func convertExpression ) { - Data.ReadingConvertExpression = (Expression>)( x => convertExpression( x ) ); + Data.ReadingConvertExpression = (Expression>)( x => convertExpression( x ) ); return this; } @@ -200,7 +200,7 @@ public PropertyMap( MemberInfo member ) /// to a field. /// /// The convert expression. - public virtual PropertyMap ConvertUsing( Func convertExpression ) + public virtual MemberMap ConvertUsing( Func convertExpression ) { Data.WritingConvertExpression = (Expression>)( x => convertExpression( x ) ); @@ -211,7 +211,7 @@ public PropertyMap( MemberInfo member ) /// Specifies an expression to be used to validate a field when reading. /// /// - public virtual PropertyMap Validate( Func validateExpression ) + public virtual MemberMap Validate( Func validateExpression ) { Data.ValidateExpression = (Expression>)( x => validateExpression( x ) ); diff --git a/src/CsvHelper/Configuration/PropertyNameCollection.cs b/src/CsvHelper/Configuration/MemberNameCollection.cs similarity index 92% rename from src/CsvHelper/Configuration/PropertyNameCollection.cs rename to src/CsvHelper/Configuration/MemberNameCollection.cs index 58d085961..9e7e8f563 100644 --- a/src/CsvHelper/Configuration/PropertyNameCollection.cs +++ b/src/CsvHelper/Configuration/MemberNameCollection.cs @@ -8,9 +8,9 @@ namespace CsvHelper.Configuration { /// - /// A collection that holds property/field names. + /// A collection that holds member names. /// - public class PropertyNameCollection : IEnumerable + public class MemberNameCollection : IEnumerable { private readonly List names = new List(); diff --git a/src/CsvHelper/Configuration/PropertyReferenceMap.cs b/src/CsvHelper/Configuration/MemberReferenceMap.cs similarity index 61% rename from src/CsvHelper/Configuration/PropertyReferenceMap.cs rename to src/CsvHelper/Configuration/MemberReferenceMap.cs index 71b9604a3..822cd1622 100644 --- a/src/CsvHelper/Configuration/PropertyReferenceMap.cs +++ b/src/CsvHelper/Configuration/MemberReferenceMap.cs @@ -9,39 +9,39 @@ namespace CsvHelper.Configuration { /// - /// Mapping info for a reference property/field mapping to a class. + /// Mapping info for a reference member mapping to a class. /// [DebuggerDisplay( "Member = {Data.Member}, Prefix = {Data.Prefix}" )] - public class PropertyReferenceMap + public class MemberReferenceMap { - private readonly PropertyReferenceMapData data; + private readonly MemberReferenceMapData data; /// - /// Gets the property/field reference map data. + /// Gets the member reference map data. /// - public PropertyReferenceMapData Data => data; + public MemberReferenceMapData Data => data; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// - /// The property/field. + /// The member. /// The to use for the reference map. - public PropertyReferenceMap( MemberInfo member, ClassMap mapping ) + public MemberReferenceMap( MemberInfo member, ClassMap mapping ) { if( mapping == null ) { throw new ArgumentNullException( nameof( mapping ) ); } - data = new PropertyReferenceMapData( member, mapping ); + data = new MemberReferenceMapData( member, mapping ); } /// - /// Appends a prefix to the header of each field of the reference property/field. + /// Appends a prefix to the header of each field of the reference member. /// - /// The prefix to be prepended to headers of each reference property/field. - /// The current - public PropertyReferenceMap Prefix( string prefix = null ) + /// The prefix to be prepended to headers of each reference member. + /// The current + public MemberReferenceMap Prefix( string prefix = null ) { if( string.IsNullOrEmpty( prefix ) ) { @@ -55,7 +55,7 @@ public PropertyReferenceMap Prefix( string prefix = null ) /// /// Get the largest index for the - /// properties/fields and references. + /// members and references. /// /// The max index. internal int GetMaxIndex() diff --git a/src/CsvHelper/Configuration/PropertyReferenceMapCollection.cs b/src/CsvHelper/Configuration/MemberReferenceMapCollection.cs similarity index 80% rename from src/CsvHelper/Configuration/PropertyReferenceMapCollection.cs rename to src/CsvHelper/Configuration/MemberReferenceMapCollection.cs index 8d7635160..8ecc89d5a 100644 --- a/src/CsvHelper/Configuration/PropertyReferenceMapCollection.cs +++ b/src/CsvHelper/Configuration/MemberReferenceMapCollection.cs @@ -13,12 +13,12 @@ namespace CsvHelper.Configuration { /// - /// A collection that holds 's. + /// A collection that holds 's. /// [DebuggerDisplay( "Count = {list.Count}" )] - public class PropertyReferenceMapCollection : IList + public class MemberReferenceMapCollection : IList { - private readonly List list = new List(); + private readonly List list = new List(); /// Gets the number of elements contained in the . /// The number of elements contained in the . @@ -33,8 +33,8 @@ public class PropertyReferenceMapCollection : IList /// The zero-based index of the element to get or set. /// /// is not a valid index in the . - /// The property/field is set and the is read-only. - public virtual PropertyReferenceMap this[int index] + /// The member is set and the is read-only. + public virtual MemberReferenceMap this[int index] { get { return list[index]; } set { list[index] = value; } @@ -43,7 +43,7 @@ public class PropertyReferenceMapCollection : IList /// Returns an enumerator that iterates through the collection. /// A that can be used to iterate through the collection. /// 1 - public virtual IEnumerator GetEnumerator() + public virtual IEnumerator GetEnumerator() { return list.GetEnumerator(); } @@ -59,7 +59,7 @@ IEnumerator IEnumerable.GetEnumerator() /// Adds an item to the . /// The object to add to the . /// The is read-only. - public virtual void Add( PropertyReferenceMap item ) + public virtual void Add( MemberReferenceMap item ) { list.Add( item ); } @@ -74,7 +74,7 @@ public virtual void Clear() /// Determines whether the contains a specific value. /// true if is found in the ; otherwise, false. /// The object to locate in the . - public virtual bool Contains( PropertyReferenceMap item ) + public virtual bool Contains( MemberReferenceMap item ) { return list.Contains( item ); } @@ -87,7 +87,7 @@ public virtual bool Contains( PropertyReferenceMap item ) /// /// is less than 0. /// The number of elements in the source is greater than the available space from to the end of the destination . - public virtual void CopyTo( PropertyReferenceMap[] array, int arrayIndex ) + public virtual void CopyTo( MemberReferenceMap[] array, int arrayIndex ) { list.CopyTo( array, arrayIndex ); } @@ -96,7 +96,7 @@ public virtual void CopyTo( PropertyReferenceMap[] array, int arrayIndex ) /// true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . /// The object to remove from the . /// The is read-only. - public virtual bool Remove( PropertyReferenceMap item ) + public virtual bool Remove( MemberReferenceMap item ) { return list.Remove( item ); } @@ -104,7 +104,7 @@ public virtual bool Remove( PropertyReferenceMap item ) /// Determines the index of a specific item in the . /// The index of if found in the list; otherwise, -1. /// The object to locate in the . - public virtual int IndexOf( PropertyReferenceMap item ) + public virtual int IndexOf( MemberReferenceMap item ) { return list.IndexOf( item ); } @@ -115,7 +115,7 @@ public virtual int IndexOf( PropertyReferenceMap item ) /// /// is not a valid index in the . /// The is read-only. - public virtual void Insert( int index, PropertyReferenceMap item ) + public virtual void Insert( int index, MemberReferenceMap item ) { list.Insert( index, item ); } @@ -131,23 +131,23 @@ public virtual void RemoveAt( int index ) } /// - /// Finds the using the given property/field expression. + /// Finds the using the given member expression. /// - /// The the property/field is on. - /// The property/field expression. - /// The for the given expression, or null if not found. - public virtual PropertyReferenceMap Find( Expression> expression ) + /// The the member is on. + /// The member expression. + /// The for the given expression, or null if not found. + public virtual MemberReferenceMap Find( Expression> expression ) { var member = ReflectionHelper.GetMember( expression ); return Find( member ); } /// - /// Finds the using the given property/field. + /// Finds the using the given member. /// - /// The property/field. - /// The for the given expression, or null if not found. - public virtual PropertyReferenceMap Find( MemberInfo member ) + /// The member. + /// The for the given expression, or null if not found. + public virtual MemberReferenceMap Find( MemberInfo member ) { var existingMap = list.SingleOrDefault( m => m.Data.Member == member || diff --git a/src/CsvHelper/Configuration/PropertyReferenceMapData.cs b/src/CsvHelper/Configuration/MemberReferenceMapData.cs similarity index 74% rename from src/CsvHelper/Configuration/PropertyReferenceMapData.cs rename to src/CsvHelper/Configuration/MemberReferenceMapData.cs index 0bd9978d1..0e2648200 100644 --- a/src/CsvHelper/Configuration/PropertyReferenceMapData.cs +++ b/src/CsvHelper/Configuration/MemberReferenceMapData.cs @@ -9,7 +9,7 @@ namespace CsvHelper.Configuration /// /// The configuration data for the reference map. /// - public class PropertyReferenceMapData + public class MemberReferenceMapData { private string prefix; @@ -22,9 +22,9 @@ public virtual string Prefix set { prefix = value; - foreach( var propertyMap in Mapping.PropertyMaps ) + foreach( var memberMap in Mapping.MemberMaps ) { - propertyMap.Data.Names.Prefix = value; + memberMap.Data.Names.Prefix = value; } } } @@ -41,11 +41,11 @@ public virtual string Prefix public ClassMap Mapping { get; private set; } /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// - /// The property/field. + /// The member. /// The mapping this is a reference for. - public PropertyReferenceMapData( MemberInfo member, ClassMap mapping ) + public MemberReferenceMapData( MemberInfo member, ClassMap mapping ) { Member = member; Mapping = mapping; diff --git a/src/CsvHelper/Configuration/ParameterReferenceMap.cs b/src/CsvHelper/Configuration/ParameterReferenceMap.cs index 3000e10af..3662ec3b3 100644 --- a/src/CsvHelper/Configuration/ParameterReferenceMap.cs +++ b/src/CsvHelper/Configuration/ParameterReferenceMap.cs @@ -53,7 +53,7 @@ public ParameterReferenceMap Prefix( string prefix = null ) /// /// Get the largest index for the - /// properties/fields and references. + /// members and references. /// /// The max index. internal int GetMaxIndex() diff --git a/src/CsvHelper/Configuration/ParameterReferenceMapData.cs b/src/CsvHelper/Configuration/ParameterReferenceMapData.cs index 15070c892..3eb9469a4 100644 --- a/src/CsvHelper/Configuration/ParameterReferenceMapData.cs +++ b/src/CsvHelper/Configuration/ParameterReferenceMapData.cs @@ -25,9 +25,9 @@ public virtual string Prefix set { prefix = value; - foreach( var propertyMap in Mapping.PropertyMaps ) + foreach( var memberMap in Mapping.MemberMaps ) { - propertyMap.Data.Names.Prefix = value; + memberMap.Data.Names.Prefix = value; } } } diff --git a/src/CsvHelper/CsvReader.cs b/src/CsvHelper/CsvReader.cs index 123c2be6f..87c3b9b55 100644 --- a/src/CsvHelper/CsvReader.cs +++ b/src/CsvHelper/CsvReader.cs @@ -98,7 +98,7 @@ public virtual bool ReadHeader() } /// - /// Validates the header. A header is bad if all the mapped properties don't match. + /// Validates the header. A header is bad if all the mapped members don't match. /// If the header is not valid, a will be thrown. /// /// The type to validate the header against. @@ -108,7 +108,7 @@ public virtual void ValidateHeader() } /// - /// Validates the header. A header is bad if all the mapped properties don't match. + /// Validates the header. A header is bad if all the mapped members don't match. /// If the header is not valid, a will be thrown. /// /// The type to validate the header against. @@ -165,12 +165,12 @@ protected virtual void ValidateHeader( ClassMap map ) } } - foreach( var property in map.PropertyMaps ) + foreach( var memberMap in map.MemberMaps ) { - var index = GetFieldIndex( property.Data.Names.ToArray(), property.Data.NameIndex, true ); + var index = GetFieldIndex( memberMap.Data.Names.ToArray(), memberMap.Data.NameIndex, true ); if( index == -1 ) { - throw new ValidationException( context, $"Header '{property.Data.Names[property.Data.NameIndex]}' was not found. {configSettingMessage}" ); + throw new ValidationException( context, $"Header '{memberMap.Data.Names[memberMap.Data.NameIndex]}' was not found. {configSettingMessage}" ); } } @@ -432,8 +432,8 @@ public virtual object GetField( Type type, int index, ITypeConverter converter ) { CheckHasBeenRead(); - context.ReusablePropertyMapData.Index = index; - context.ReusablePropertyMapData.TypeConverter = converter; + context.ReusableMemberMapData.Index = index; + context.ReusableMemberMapData.TypeConverter = converter; if( !context.TypeConverterOptionsCache.TryGetValue( type, out TypeConverterOptions typeConverterOptions ) ) { typeConverterOptions = TypeConverterOptions.Merge( new TypeConverterOptions(), context.ReaderConfiguration.TypeConverterOptionsFactory.GetOptions( type ) ); @@ -441,10 +441,10 @@ public virtual object GetField( Type type, int index, ITypeConverter converter ) context.TypeConverterOptionsCache.Add( type, typeConverterOptions ); } - context.ReusablePropertyMapData.TypeConverterOptions = typeConverterOptions; + context.ReusableMemberMapData.TypeConverterOptions = typeConverterOptions; var field = GetField( index ); - return converter.ConvertFromString( field, this, context.ReusablePropertyMapData ); + return converter.ConvertFromString( field, this, context.ReusableMemberMapData ); } /// @@ -1298,11 +1298,11 @@ protected virtual int GetFieldIndex( string[] names, int index = 0, bool isTryGe string name = null; foreach( var pair in context.NamedIndexes ) { - var propertyName = context.ReaderConfiguration.PrepareHeaderForMatch( pair.Key ); + var memberName = context.ReaderConfiguration.PrepareHeaderForMatch( pair.Key ); foreach( var n in names ) { var fieldName = context.ReaderConfiguration.PrepareHeaderForMatch( n ); - if( Configuration.CultureInfo.CompareInfo.Compare( propertyName, fieldName, CompareOptions.None ) == 0 ) + if( Configuration.CultureInfo.CompareInfo.Compare( memberName, fieldName, CompareOptions.None ) == 0 ) { name = pair.Key; } @@ -1488,11 +1488,11 @@ protected virtual void CreateFuncForObject( Type recordType ) else { var bindings = new List(); - CreatePropertyBindingsForMapping( map, recordType, bindings ); + CreateMemberBindingsForMapping( map, recordType, bindings ); if( bindings.Count == 0 ) { - throw new ReaderException( context, $"No properties are mapped for type '{recordType.FullName}'." ); + throw new ReaderException( context, $"No members are mapped for type '{recordType.FullName}'." ); } if( map.Constructor is NewExpression ) @@ -1527,15 +1527,15 @@ protected virtual void CreateFuncForPrimitive( Type recordType ) var method = typeof( IReaderRow ).GetProperty( "Item", typeof( string ), new[] { typeof( int ) } ).GetGetMethod(); Expression fieldExpression = Expression.Call( Expression.Constant( this ), method, Expression.Constant( 0, typeof( int ) ) ); - var propertyMapData = new PropertyMapData( null ) + var memberMapData = new MemberMapData( null ) { Index = 0, TypeConverter = Configuration.TypeConverterFactory.GetConverter( recordType ) }; - propertyMapData.TypeConverterOptions = TypeConverterOptions.Merge( new TypeConverterOptions(), context.ReaderConfiguration.TypeConverterOptionsFactory.GetOptions( recordType ) ); - propertyMapData.TypeConverterOptions.CultureInfo = context.ReaderConfiguration.CultureInfo; + memberMapData.TypeConverterOptions = TypeConverterOptions.Merge( new TypeConverterOptions(), context.ReaderConfiguration.TypeConverterOptionsFactory.GetOptions( recordType ) ); + memberMapData.TypeConverterOptions.CultureInfo = context.ReaderConfiguration.CultureInfo; - fieldExpression = Expression.Call( Expression.Constant( propertyMapData.TypeConverter ), "ConvertFromString", null, fieldExpression, Expression.Constant( this ), Expression.Constant( propertyMapData ) ); + fieldExpression = Expression.Call( Expression.Constant( memberMapData.TypeConverter ), "ConvertFromString", null, fieldExpression, Expression.Constant( this ), Expression.Constant( memberMapData ) ); fieldExpression = Expression.Convert( fieldExpression, recordType ); var funcType = typeof( Func<> ).MakeGenericType( recordType ); @@ -1565,7 +1565,7 @@ protected virtual void CreateConstructorArgumentExpressionsForMapping( ClassMap // Reference type. var referenceBindings = new List(); - CreatePropertyBindingsForMapping( parameterMap.ReferenceMap.Data.Mapping, parameterMap.ReferenceMap.Data.Parameter.ParameterType, referenceBindings ); + CreateMemberBindingsForMapping( parameterMap.ReferenceMap.Data.Mapping, parameterMap.ReferenceMap.Data.Parameter.ParameterType, referenceBindings ); // This is in case an IContractResolver is being used. var type = ReflectionHelper.CreateInstance( parameterMap.ReferenceMap.Data.Parameter.ParameterType ).GetType(); @@ -1591,14 +1591,14 @@ protected virtual void CreateConstructorArgumentExpressionsForMapping( ClassMap parameterMap.Data.TypeConverterOptions.CultureInfo = context.ReaderConfiguration.CultureInfo; // Create type converter expression. - var propertyMapData = new PropertyMapData( null ) + var memberMapData = new MemberMapData( null ) { Index = parameterMap.Data.Index, TypeConverter = parameterMap.Data.TypeConverter, TypeConverterOptions = parameterMap.Data.TypeConverterOptions }; - propertyMapData.Names.Add( parameterMap.Data.Name ); - Expression typeConverterFieldExpression = Expression.Call( typeConverterExpression, nameof( ITypeConverter.ConvertFromString ), null, fieldExpression, Expression.Constant( this ), Expression.Constant( propertyMapData ) ); + memberMapData.Names.Add( parameterMap.Data.Name ); + Expression typeConverterFieldExpression = Expression.Call( typeConverterExpression, nameof( ITypeConverter.ConvertFromString ), null, fieldExpression, Expression.Constant( this ), Expression.Constant( memberMapData ) ); typeConverterFieldExpression = Expression.Convert( typeConverterFieldExpression, parameterMap.Data.Parameter.ParameterType ); fieldExpression = typeConverterFieldExpression; @@ -1609,14 +1609,14 @@ protected virtual void CreateConstructorArgumentExpressionsForMapping( ClassMap } /// - /// Creates the property/field bindings for the given . + /// Creates the member bindings for the given . /// /// The mapping to create the bindings for. /// The type of record. /// The bindings that will be added to from the mapping. - protected virtual void CreatePropertyBindingsForMapping( ClassMap mapping, Type recordType, List bindings ) + protected virtual void CreateMemberBindingsForMapping( ClassMap mapping, Type recordType, List bindings ) { - AddPropertyBindings( mapping.PropertyMaps, bindings ); + AddMemberBindings( mapping.MemberMaps, bindings ); foreach( var referenceMap in mapping.ReferenceMaps ) { @@ -1626,7 +1626,7 @@ protected virtual void CreatePropertyBindingsForMapping( ClassMap mapping, Type } var referenceBindings = new List(); - CreatePropertyBindingsForMapping( referenceMap.Data.Mapping, referenceMap.Data.Member.MemberType(), referenceBindings ); + CreateMemberBindingsForMapping( referenceMap.Data.Mapping, referenceMap.Data.Member.MemberType(), referenceBindings ); Expression referenceBody; var constructorExpression = referenceMap.Data.Mapping.Constructor; @@ -1653,39 +1653,39 @@ protected virtual void CreatePropertyBindingsForMapping( ClassMap mapping, Type } /// - /// Adds a for each property/field for it's field. + /// Adds a for each member for it's field. /// - /// The properties/fields to add bindings for. - /// The bindings that will be added to from the properties. - protected virtual void AddPropertyBindings( PropertyMapCollection members, List bindings ) + /// The members to add bindings for. + /// The bindings that will be added to from the members. + protected virtual void AddMemberBindings( MemberMapCollection members, List bindings ) { - foreach( var propertyMap in members ) + foreach( var memberMap in members ) { - if( propertyMap.Data.ReadingConvertExpression != null ) + if( memberMap.Data.ReadingConvertExpression != null ) { // The user is providing the expression to do the conversion. - Expression exp = Expression.Invoke( propertyMap.Data.ReadingConvertExpression, Expression.Constant( this ) ); - exp = Expression.Convert( exp, propertyMap.Data.Member.MemberType() ); - bindings.Add( Expression.Bind( propertyMap.Data.Member, exp ) ); + Expression exp = Expression.Invoke( memberMap.Data.ReadingConvertExpression, Expression.Constant( this ) ); + exp = Expression.Convert( exp, memberMap.Data.Member.MemberType() ); + bindings.Add( Expression.Bind( memberMap.Data.Member, exp ) ); continue; } - if( !CanRead( propertyMap ) ) + if( !CanRead( memberMap ) ) { continue; } - if( propertyMap.Data.TypeConverter == null ) + if( memberMap.Data.TypeConverter == null ) { // Skip if the type isn't convertible. continue; } int index; - if( propertyMap.Data.IsNameSet || context.ReaderConfiguration.HasHeaderRecord && !propertyMap.Data.IsIndexSet ) + if( memberMap.Data.IsNameSet || context.ReaderConfiguration.HasHeaderRecord && !memberMap.Data.IsIndexSet ) { // Use the name. - index = GetFieldIndex( propertyMap.Data.Names.ToArray(), propertyMap.Data.NameIndex ); + index = GetFieldIndex( memberMap.Data.Names.ToArray(), memberMap.Data.NameIndex ); if( index == -1 ) { // Skip if the index was not found. @@ -1695,7 +1695,7 @@ protected virtual void AddPropertyBindings( PropertyMapCollection members, List< else { // Use the index. - index = propertyMap.Data.Index; + index = memberMap.Data.Index; } // Get the field using the field index. @@ -1703,9 +1703,9 @@ protected virtual void AddPropertyBindings( PropertyMapCollection members, List< Expression fieldExpression = Expression.Call( Expression.Constant( this ), method, Expression.Constant( index, typeof( int ) ) ); // Validate the field. - if( propertyMap.Data.ValidateExpression != null ) + if( memberMap.Data.ValidateExpression != null ) { - var validateExpression = Expression.IsFalse( Expression.Invoke( propertyMap.Data.ValidateExpression, fieldExpression ) ); + var validateExpression = Expression.IsFalse( Expression.Invoke( memberMap.Data.ValidateExpression, fieldExpression ) ); var validationExceptionConstructor = typeof( ValidationException ).GetConstructors().OrderBy( c => c.GetParameters().Length ).First(); var throwExpression = Expression.Throw( Expression.Constant( new ValidationException( context ) ) ); fieldExpression = Expression.Block( @@ -1716,34 +1716,34 @@ protected virtual void AddPropertyBindings( PropertyMapCollection members, List< } // Convert the field. - var typeConverterExpression = Expression.Constant( propertyMap.Data.TypeConverter ); - propertyMap.Data.TypeConverterOptions = TypeConverterOptions.Merge( new TypeConverterOptions(), context.ReaderConfiguration.TypeConverterOptionsFactory.GetOptions( propertyMap.Data.Member.MemberType() ), propertyMap.Data.TypeConverterOptions ); - propertyMap.Data.TypeConverterOptions.CultureInfo = context.ReaderConfiguration.CultureInfo; + var typeConverterExpression = Expression.Constant( memberMap.Data.TypeConverter ); + memberMap.Data.TypeConverterOptions = TypeConverterOptions.Merge( new TypeConverterOptions(), context.ReaderConfiguration.TypeConverterOptionsFactory.GetOptions( memberMap.Data.Member.MemberType() ), memberMap.Data.TypeConverterOptions ); + memberMap.Data.TypeConverterOptions.CultureInfo = context.ReaderConfiguration.CultureInfo; // Create type converter expression. - Expression typeConverterFieldExpression = Expression.Call( typeConverterExpression, nameof( ITypeConverter.ConvertFromString ), null, fieldExpression, Expression.Constant( this ), Expression.Constant( propertyMap.Data ) ); - typeConverterFieldExpression = Expression.Convert( typeConverterFieldExpression, propertyMap.Data.Member.MemberType() ); + Expression typeConverterFieldExpression = Expression.Call( typeConverterExpression, nameof( ITypeConverter.ConvertFromString ), null, fieldExpression, Expression.Constant( this ), Expression.Constant( memberMap.Data ) ); + typeConverterFieldExpression = Expression.Convert( typeConverterFieldExpression, memberMap.Data.Member.MemberType() ); - if( propertyMap.Data.IsConstantSet ) + if( memberMap.Data.IsConstantSet ) { - fieldExpression = Expression.Convert( Expression.Constant( propertyMap.Data.Constant ), propertyMap.Data.Member.MemberType() ); + fieldExpression = Expression.Convert( Expression.Constant( memberMap.Data.Constant ), memberMap.Data.Member.MemberType() ); } - else if( propertyMap.Data.IsDefaultSet ) + else if( memberMap.Data.IsDefaultSet ) { // Create default value expression. Expression defaultValueExpression; - if( propertyMap.Data.Member.MemberType() != typeof( string ) && propertyMap.Data.Default != null && propertyMap.Data.Default.GetType() == typeof( string ) ) + if( memberMap.Data.Member.MemberType() != typeof( string ) && memberMap.Data.Default != null && memberMap.Data.Default.GetType() == typeof( string ) ) { - // The default is a string but the property type is not. Use a converter. - defaultValueExpression = Expression.Call( typeConverterExpression, nameof( ITypeConverter.ConvertFromString ), null, Expression.Constant( propertyMap.Data.Default ), Expression.Constant( this ), Expression.Constant( propertyMap.Data ) ); + // The default is a string but the member type is not. Use a converter. + defaultValueExpression = Expression.Call( typeConverterExpression, nameof( ITypeConverter.ConvertFromString ), null, Expression.Constant( memberMap.Data.Default ), Expression.Constant( this ), Expression.Constant( memberMap.Data ) ); } else { - // The property type and default type match. - defaultValueExpression = Expression.Constant( propertyMap.Data.Default ); + // The member type and default type match. + defaultValueExpression = Expression.Constant( memberMap.Data.Default ); } - defaultValueExpression = Expression.Convert( defaultValueExpression, propertyMap.Data.Member.MemberType() ); + defaultValueExpression = Expression.Convert( defaultValueExpression, memberMap.Data.Member.MemberType() ); // If null, use string.Empty. var coalesceExpression = Expression.Coalesce( fieldExpression, Expression.Constant( string.Empty ) ); @@ -1759,23 +1759,23 @@ protected virtual void AddPropertyBindings( PropertyMapCollection members, List< fieldExpression = typeConverterFieldExpression; } - bindings.Add( Expression.Bind( propertyMap.Data.Member, fieldExpression ) ); + bindings.Add( Expression.Bind( memberMap.Data.Member, fieldExpression ) ); } } /// - /// Determines if the property/field for the + /// Determines if the member for the /// can be read. /// - /// The property/field map. - /// A value indicating of the property/field can be read. True if it can, otherwise false. - protected virtual bool CanRead( PropertyMap propertyMap ) + /// The member map. + /// A value indicating of the member can be read. True if it can, otherwise false. + protected virtual bool CanRead( MemberMap memberMap ) { var cantRead = - // Ignored property/field; - propertyMap.Data.Ignore; + // Ignored member; + memberMap.Data.Ignore; - var property = propertyMap.Data.Member as PropertyInfo; + var property = memberMap.Data.Member as PropertyInfo; if( property != null ) { cantRead = cantRead || @@ -1790,16 +1790,16 @@ protected virtual bool CanRead( PropertyMap propertyMap ) } /// - /// Determines if the property/field for the + /// Determines if the member for the /// can be read. /// - /// The reference map. - /// A value indicating of the property/field can be read. True if it can, otherwise false. - protected virtual bool CanRead( PropertyReferenceMap propertyReferenceMap ) + /// The reference map. + /// A value indicating of the member can be read. True if it can, otherwise false. + protected virtual bool CanRead( MemberReferenceMap memberReferenceMap ) { var cantRead = false; - var property = propertyReferenceMap.Data.Member as PropertyInfo; + var property = memberReferenceMap.Data.Member as PropertyInfo; if( property != null ) { cantRead = diff --git a/src/CsvHelper/CsvWriter.cs b/src/CsvHelper/CsvWriter.cs index 49618978f..304487909 100644 --- a/src/CsvHelper/CsvWriter.cs +++ b/src/CsvHelper/CsvWriter.cs @@ -185,7 +185,7 @@ public virtual void WriteField( T field ) public virtual void WriteField( T field, ITypeConverter converter ) { var type = field == null ? typeof( string ) : field.GetType(); - context.ReusablePropertyMapData.TypeConverter = converter; + context.ReusableMemberMapData.TypeConverter = converter; if( !context.TypeConverterOptionsCache.TryGetValue( type, out TypeConverterOptions typeConverterOptions ) ) { typeConverterOptions = TypeConverterOptions.Merge( new TypeConverterOptions(), context.WriterConfiguration.TypeConverterOptionsFactory.GetOptions( type ) ); @@ -193,9 +193,9 @@ public virtual void WriteField( T field, ITypeConverter converter ) context.TypeConverterOptionsCache.Add( type, typeConverterOptions ); } - context.ReusablePropertyMapData.TypeConverterOptions = typeConverterOptions; + context.ReusableMemberMapData.TypeConverterOptions = typeConverterOptions; - var fieldString = converter.ConvertToString( field, this, context.ReusablePropertyMapData ); + var fieldString = converter.ConvertToString( field, this, context.ReusableMemberMapData ); WriteConvertedField( fieldString ); } @@ -283,7 +283,7 @@ public virtual void WriteComment( string comment ) } /// - /// Writes the header record from the given properties/fields. + /// Writes the header record from the given members. /// /// The type of the record. public virtual void WriteHeader() @@ -292,7 +292,7 @@ public virtual void WriteHeader() } /// - /// Writes the header record from the given properties/fields. + /// Writes the header record from the given members. /// /// The type of the record. public virtual void WriteHeader( Type type ) @@ -327,24 +327,24 @@ public virtual void WriteHeader( Type type ) context.WriterConfiguration.Maps.Add( context.WriterConfiguration.AutoMap( type ) ); } - var properties = new PropertyMapCollection(); - AddProperties( properties, context.WriterConfiguration.Maps[type] ); + var members = new MemberMapCollection(); + AddMembers( members, context.WriterConfiguration.Maps[type] ); - foreach( var property in properties ) + foreach( var member in members ) { - if( CanWrite( property ) ) + if( CanWrite( member ) ) { - if( property.Data.IndexEnd >= property.Data.Index ) + if( member.Data.IndexEnd >= member.Data.Index ) { - var count = property.Data.IndexEnd - property.Data.Index + 1; + var count = member.Data.IndexEnd - member.Data.Index + 1; for( var i = 1; i <= count; i++ ) { - WriteField( property.Data.Names.FirstOrDefault() + i ); + WriteField( member.Data.Names.FirstOrDefault() + i ); } } else { - WriteField( property.Data.Names.FirstOrDefault() ); + WriteField( member.Data.Names.FirstOrDefault() ); } } } @@ -486,81 +486,81 @@ public virtual void WriteRecords( IEnumerable records ) } /// - /// Adds the properties/fields from the mapping. This will recursively - /// traverse the mapping tree and add all properties/fields for + /// Adds the members from the mapping. This will recursively + /// traverse the mapping tree and add all members for /// reference maps. /// - /// The properties/fields to be added to. - /// The mapping where the properties/fields are added from. - protected virtual void AddProperties( PropertyMapCollection properties, ClassMap mapping ) + /// The members to be added to. + /// The mapping where the members are added from. + protected virtual void AddMembers( MemberMapCollection members, ClassMap mapping ) { - properties.AddRange( mapping.PropertyMaps ); + members.AddRange( mapping.MemberMaps ); foreach( var refMap in mapping.ReferenceMaps ) { - AddProperties( properties, refMap.Data.Mapping ); + AddMembers( members, refMap.Data.Mapping ); } } /// - /// Creates a property/field expression for the given property on the record. - /// This will recursively traverse the mapping to find the property/field - /// and create a safe property/field accessor for each level as it goes. + /// Creates a member expression for the given member on the record. + /// This will recursively traverse the mapping to find the member + /// and create a safe member accessor for each level as it goes. /// - /// The current property/field expression. - /// The mapping to look for the property/field to map on. - /// The property/field map to look for on the mapping. - /// An Expression to access the given property/field. - protected virtual Expression CreatePropertyExpression( Expression recordExpression, ClassMap mapping, PropertyMap propertyMap ) + /// The current member expression. + /// The mapping to look for the member to map on. + /// The member map to look for on the mapping. + /// An Expression to access the given member. + protected virtual Expression CreateMemberExpression( Expression recordExpression, ClassMap mapping, MemberMap memberMap ) { - if( mapping.PropertyMaps.Any( pm => pm == propertyMap ) ) + if( mapping.MemberMaps.Any( pm => pm == memberMap ) ) { - // The property/field is on this level. - if( propertyMap.Data.Member is PropertyInfo ) + // The member is on this level. + if( memberMap.Data.Member is PropertyInfo ) { - return Expression.Property( recordExpression, (PropertyInfo)propertyMap.Data.Member ); + return Expression.Property( recordExpression, (PropertyInfo)memberMap.Data.Member ); } - if( propertyMap.Data.Member is FieldInfo ) + if( memberMap.Data.Member is FieldInfo ) { - return Expression.Field( recordExpression, (FieldInfo)propertyMap.Data.Member ); + return Expression.Field( recordExpression, (FieldInfo)memberMap.Data.Member ); } } - // The property/field isn't on this level of the mapping. + // The member isn't on this level of the mapping. // We need to search down through the reference maps. foreach( var refMap in mapping.ReferenceMaps ) { var wrapped = refMap.Data.Member.GetMemberExpression( recordExpression ); - var propertyExpression = CreatePropertyExpression( wrapped, refMap.Data.Mapping, propertyMap ); - if( propertyExpression == null ) + var memberExpression = CreateMemberExpression( wrapped, refMap.Data.Mapping, memberMap ); + if( memberExpression == null ) { continue; } if( refMap.Data.Member.MemberType().GetTypeInfo().IsValueType ) { - return propertyExpression; + return memberExpression; } var nullCheckExpression = Expression.Equal( wrapped, Expression.Constant( null ) ); - var isValueType = propertyMap.Data.Member.MemberType().GetTypeInfo().IsValueType; - var isGenericType = isValueType && propertyMap.Data.Member.MemberType().GetTypeInfo().IsGenericType; - Type propertyType; + var isValueType = memberMap.Data.Member.MemberType().GetTypeInfo().IsValueType; + var isGenericType = isValueType && memberMap.Data.Member.MemberType().GetTypeInfo().IsGenericType; + Type memberType; if( isValueType && !isGenericType && !context.WriterConfiguration.UseNewObjectForNullReferenceMembers ) { - propertyType = typeof( Nullable<> ).MakeGenericType( propertyMap.Data.Member.MemberType() ); - propertyExpression = Expression.Convert( propertyExpression, propertyType ); + memberType = typeof( Nullable<> ).MakeGenericType( memberMap.Data.Member.MemberType() ); + memberExpression = Expression.Convert( memberExpression, memberType ); } else { - propertyType = propertyMap.Data.Member.MemberType(); + memberType = memberMap.Data.Member.MemberType(); } var defaultValueExpression = isValueType && !isGenericType - ? (Expression)Expression.New( propertyType ) - : Expression.Constant( null, propertyType ); - var conditionExpression = Expression.Condition( nullCheckExpression, defaultValueExpression, propertyExpression ); + ? (Expression)Expression.New( memberType ) + : Expression.Constant( null, memberType ); + var conditionExpression = Expression.Condition( nullCheckExpression, defaultValueExpression, memberExpression ); return conditionExpression; } @@ -664,57 +664,57 @@ protected virtual Delegate CreateActionForObject( Type type ) { var recordParameter = Expression.Parameter( type, "record" ); - // Get a list of all the properties/fields so they will + // Get a list of all the members so they will // be sorted properly. - var properties = new PropertyMapCollection(); - AddProperties( properties, context.WriterConfiguration.Maps[type] ); + var members = new MemberMapCollection(); + AddMembers( members, context.WriterConfiguration.Maps[type] ); - if( properties.Count == 0 ) + if( members.Count == 0 ) { throw new WriterException( context, $"No properties are mapped for type '{type.FullName}'." ); } var delegates = new List(); - foreach( var propertyMap in properties ) + foreach( var memberMap in members ) { - if( propertyMap.Data.WritingConvertExpression != null ) + if( memberMap.Data.WritingConvertExpression != null ) { // The user is providing the expression to do the conversion. - Expression exp = Expression.Invoke( propertyMap.Data.WritingConvertExpression, recordParameter ); + Expression exp = Expression.Invoke( memberMap.Data.WritingConvertExpression, recordParameter ); exp = Expression.Call( Expression.Constant( this ), nameof( WriteConvertedField ), null, exp ); delegates.Add( Expression.Lambda( typeof( Action<> ).MakeGenericType( type ), exp, recordParameter ).Compile() ); continue; } - if( !CanWrite( propertyMap ) ) + if( !CanWrite( memberMap ) ) { continue; } Expression fieldExpression; - if( propertyMap.Data.IsConstantSet ) + if( memberMap.Data.IsConstantSet ) { - fieldExpression = Expression.Constant( propertyMap.Data.Constant ); + fieldExpression = Expression.Constant( memberMap.Data.Constant ); } else { - if( propertyMap.Data.TypeConverter == null ) + if( memberMap.Data.TypeConverter == null ) { // Skip if the type isn't convertible. continue; } - fieldExpression = CreatePropertyExpression( recordParameter, context.WriterConfiguration.Maps[type], propertyMap ); + fieldExpression = CreateMemberExpression( recordParameter, context.WriterConfiguration.Maps[type], memberMap ); - var typeConverterExpression = Expression.Constant( propertyMap.Data.TypeConverter ); - propertyMap.Data.TypeConverterOptions = TypeConverterOptions.Merge( new TypeConverterOptions(), context.WriterConfiguration.TypeConverterOptionsFactory.GetOptions( propertyMap.Data.Member.MemberType() ), propertyMap.Data.TypeConverterOptions ); - propertyMap.Data.TypeConverterOptions.CultureInfo = context.WriterConfiguration.CultureInfo; + var typeConverterExpression = Expression.Constant( memberMap.Data.TypeConverter ); + memberMap.Data.TypeConverterOptions = TypeConverterOptions.Merge( new TypeConverterOptions(), context.WriterConfiguration.TypeConverterOptionsFactory.GetOptions( memberMap.Data.Member.MemberType() ), memberMap.Data.TypeConverterOptions ); + memberMap.Data.TypeConverterOptions.CultureInfo = context.WriterConfiguration.CultureInfo; var method = typeof( ITypeConverter ).GetMethod( nameof( ITypeConverter.ConvertToString ) ); fieldExpression = Expression.Convert( fieldExpression, typeof( object ) ); - fieldExpression = Expression.Call( typeConverterExpression, method, fieldExpression, Expression.Constant( this ), Expression.Constant( propertyMap.Data ) ); + fieldExpression = Expression.Call( typeConverterExpression, method, fieldExpression, Expression.Constant( this ), Expression.Constant( memberMap.Data ) ); if( type.GetTypeInfo().IsClass ) { @@ -749,15 +749,15 @@ protected virtual Delegate CreateActionForPrimitive( Type type ) var typeConverterExpression = Expression.Constant( typeConverter ); var method = typeof( ITypeConverter ).GetMethod( nameof( ITypeConverter.ConvertToString ) ); - var propertyMapData = new PropertyMapData( null ) + var memberMapData = new MemberMapData( null ) { Index = 0, TypeConverter = typeConverter, TypeConverterOptions = TypeConverterOptions.Merge( new TypeConverterOptions(), context.WriterConfiguration.TypeConverterOptionsFactory.GetOptions( type ) ) }; - propertyMapData.TypeConverterOptions.CultureInfo = context.WriterConfiguration.CultureInfo; + memberMapData.TypeConverterOptions.CultureInfo = context.WriterConfiguration.CultureInfo; - fieldExpression = Expression.Call( typeConverterExpression, method, fieldExpression, Expression.Constant( this ), Expression.Constant( propertyMapData ) ); + fieldExpression = Expression.Call( typeConverterExpression, method, fieldExpression, Expression.Constant( this ), Expression.Constant( memberMapData ) ); fieldExpression = Expression.Call( Expression.Constant( this ), nameof( WriteConvertedField ), null, fieldExpression ); var actionType = typeof( Action<> ).MakeGenericType( type ); @@ -770,7 +770,7 @@ protected virtual Delegate CreateActionForPrimitive( Type type ) /// /// Creates an action for an ExpandoObject. This needs to be separate /// from other dynamic objects due to what seems to be an issue in ExpandoObject - /// where expandos with the same properties/fields sometimes test as not equal. + /// where expandos with the same members sometimes test as not equal. /// /// The ExpandoObject. /// @@ -802,12 +802,12 @@ protected virtual Delegate CreateActionForDynamic( IDynamicMetaObjectProvider pr var parameterExpression = Expression.Parameter( typeof( object ), "record" ); var metaObject = provider.GetMetaObject( parameterExpression ); - var propertyNames = metaObject.GetDynamicMemberNames(); + var memberNames = metaObject.GetDynamicMemberNames(); var delegates = new List(); - foreach( var propertyName in propertyNames ) + foreach( var memberName in memberNames ) { - var getMemberBinder = (GetMemberBinder)Microsoft.CSharp.RuntimeBinder.Binder.GetMember( 0, propertyName, type, new[] { CSharpArgumentInfo.Create( 0, null ) } ); + var getMemberBinder = (GetMemberBinder)Microsoft.CSharp.RuntimeBinder.Binder.GetMember( 0, memberName, type, new[] { CSharpArgumentInfo.Create( 0, null ) } ); var getMemberMetaObject = metaObject.BindGetMember( getMemberBinder ); var fieldExpression = getMemberMetaObject.Expression; fieldExpression = Expression.Call( Expression.Constant( this ), nameof( WriteField ), new[] { typeof( object ) }, fieldExpression ); @@ -836,18 +836,18 @@ protected virtual Delegate CombineDelegates( IEnumerable delegates ) } /// - /// Checks if the property/field can be written. + /// Checks if the member can be written. /// - /// The property/field map that we are checking. - /// A value indicating if the property/field can be written. - /// True if the property/field can be written, otherwise false. - protected virtual bool CanWrite( PropertyMap propertyMap ) + /// The member map that we are checking. + /// A value indicating if the member can be written. + /// True if the member can be written, otherwise false. + protected virtual bool CanWrite( MemberMap memberMap ) { var cantWrite = - // Ignored properties/fields. - propertyMap.Data.Ignore; + // Ignored members. + memberMap.Data.Ignore; - var property = propertyMap.Data.Member as PropertyInfo; + var property = memberMap.Data.Member as PropertyInfo; if( property != null ) { cantWrite = cantWrite || diff --git a/src/CsvHelper/IWriterRow.cs b/src/CsvHelper/IWriterRow.cs index eeb01d540..862b780f7 100644 --- a/src/CsvHelper/IWriterRow.cs +++ b/src/CsvHelper/IWriterRow.cs @@ -99,13 +99,13 @@ public interface IWriterRow void WriteComment( string comment ); /// - /// Writes the header record from the given properties/fields. + /// Writes the header record from the given members. /// /// The type of the record. void WriteHeader(); /// - /// Writes the header record from the given properties/fields. + /// Writes the header record from the given members. /// /// The type of the record. void WriteHeader( Type type ); diff --git a/src/CsvHelper/ReadingContext.cs b/src/CsvHelper/ReadingContext.cs index 1c1df7144..1f17a5949 100644 --- a/src/CsvHelper/ReadingContext.cs +++ b/src/CsvHelper/ReadingContext.cs @@ -34,7 +34,7 @@ public class ReadingContext : IReaderContext, IParserContext, IFieldReaderContex internal Dictionary TypeConverterOptionsCache { get; } = new Dictionary(); - internal PropertyMapData ReusablePropertyMapData { get; } = new PropertyMapData( null ); + internal MemberMapData ReusableMemberMapData { get; } = new MemberMapData( null ); /// /// Gets the configuration. diff --git a/src/CsvHelper/ReflectionExtensions.cs b/src/CsvHelper/ReflectionExtensions.cs index c5cfaacdd..4377969bc 100644 --- a/src/CsvHelper/ReflectionExtensions.cs +++ b/src/CsvHelper/ReflectionExtensions.cs @@ -16,7 +16,7 @@ namespace CsvHelper public static class ReflectionExtensions { /// - /// Gets the type from the property/field. + /// Gets the type from the member. /// /// The member to get the type from. /// The type. @@ -38,7 +38,7 @@ public static Type MemberType( this MemberInfo member ) } /// - /// Gets a member expression for the property/field. + /// Gets a member expression for the member. /// /// The member to get the expression for. /// The member expression. diff --git a/src/CsvHelper/ReflectionHelper.cs b/src/CsvHelper/ReflectionHelper.cs index e6ef0d970..8ba6e2540 100644 --- a/src/CsvHelper/ReflectionHelper.cs +++ b/src/CsvHelper/ReflectionHelper.cs @@ -123,11 +123,11 @@ public static PropertyInfo GetDeclaringProperty( Type type, PropertyInfo propert return field; } - throw new ConfigurationException( $"'{member.Name}' is not a property/field." ); + throw new ConfigurationException( $"'{member.Name}' is not a member." ); } /// - /// Gets the property/field inheritance chain as a stack. + /// Gets the member inheritance chain as a stack. /// /// The type of the model. /// The type of the property. diff --git a/src/CsvHelper/TypeConversion/ArrayConverter.cs b/src/CsvHelper/TypeConversion/ArrayConverter.cs index f9da2ed6d..9662ff3f1 100644 --- a/src/CsvHelper/TypeConversion/ArrayConverter.cs +++ b/src/CsvHelper/TypeConversion/ArrayConverter.cs @@ -20,14 +20,14 @@ public class ArrayConverter : IEnumerableConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { Array array; - var type = propertyMapData.Member.MemberType().GetElementType(); + var type = memberMapData.Member.MemberType().GetElementType(); - if( propertyMapData.IsNameSet || row.Configuration.HasHeaderRecord && !propertyMapData.IsIndexSet ) + if( memberMapData.IsNameSet || row.Configuration.HasHeaderRecord && !memberMapData.IsIndexSet ) { // Use the name. var list = new List(); @@ -35,7 +35,7 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM while( true ) { object field; - if( !row.TryGetField( type, propertyMapData.Names.FirstOrDefault(), nameIndex, out field ) ) + if( !row.TryGetField( type, memberMapData.Names.FirstOrDefault(), nameIndex, out field ) ) { break; } @@ -44,7 +44,7 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM nameIndex++; } - array = (Array)ReflectionHelper.CreateInstance( propertyMapData.Member.MemberType(), list.Count ); + array = (Array)ReflectionHelper.CreateInstance( memberMapData.Member.MemberType(), list.Count ); for( var i = 0; i < list.Count; i++ ) { array.SetValue( list[i], i ); @@ -53,14 +53,14 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM else { // Use the index. - var indexEnd = propertyMapData.IndexEnd < propertyMapData.Index + var indexEnd = memberMapData.IndexEnd < memberMapData.Index ? row.Context.Record.Length - 1 - : propertyMapData.IndexEnd; + : memberMapData.IndexEnd; - var arraySize = indexEnd - propertyMapData.Index + 1; - array = (Array)ReflectionHelper.CreateInstance( propertyMapData.Member.MemberType(), arraySize ); + var arraySize = indexEnd - memberMapData.Index + 1; + array = (Array)ReflectionHelper.CreateInstance( memberMapData.Member.MemberType(), arraySize ); var arrayIndex = 0; - for( var i = propertyMapData.Index; i <= indexEnd; i++ ) + for( var i = memberMapData.Index; i <= indexEnd; i++ ) { array.SetValue( row.GetField( type, i ), arrayIndex ); arrayIndex++; diff --git a/src/CsvHelper/TypeConversion/BooleanConverter.cs b/src/CsvHelper/TypeConversion/BooleanConverter.cs index 8a1895d22..e3e49cdb6 100644 --- a/src/CsvHelper/TypeConversion/BooleanConverter.cs +++ b/src/CsvHelper/TypeConversion/BooleanConverter.cs @@ -18,9 +18,9 @@ public class BooleanConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { bool b; if( bool.TryParse( text, out b ) ) @@ -42,23 +42,23 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM } var t = ( text ?? string.Empty ).Trim(); - foreach( var trueValue in propertyMapData.TypeConverterOptions.BooleanTrueValues ) + foreach( var trueValue in memberMapData.TypeConverterOptions.BooleanTrueValues ) { - if( propertyMapData.TypeConverterOptions.CultureInfo.CompareInfo.Compare( trueValue, t, CompareOptions.IgnoreCase ) == 0 ) + if( memberMapData.TypeConverterOptions.CultureInfo.CompareInfo.Compare( trueValue, t, CompareOptions.IgnoreCase ) == 0 ) { return true; } } - foreach( var falseValue in propertyMapData.TypeConverterOptions.BooleanFalseValues ) + foreach( var falseValue in memberMapData.TypeConverterOptions.BooleanFalseValues ) { - if( propertyMapData.TypeConverterOptions.CultureInfo.CompareInfo.Compare( falseValue, t, CompareOptions.IgnoreCase ) == 0 ) + if( memberMapData.TypeConverterOptions.CultureInfo.CompareInfo.Compare( falseValue, t, CompareOptions.IgnoreCase ) == 0 ) { return false; } } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/ByteArrayConverter.cs b/src/CsvHelper/TypeConversion/ByteArrayConverter.cs index a042affe2..225286459 100644 --- a/src/CsvHelper/TypeConversion/ByteArrayConverter.cs +++ b/src/CsvHelper/TypeConversion/ByteArrayConverter.cs @@ -32,9 +32,9 @@ public ByteArrayConverter( ByteArrayConverterOptions options = ByteArrayConverte /// /// The object to convert to a string. /// The for the current record. - /// The for the property/field being written. + /// The for the member being written. /// The string representation of the object. - public override string ConvertToString( object value, IWriterRow row, PropertyMapData propertyMapData ) + public override string ConvertToString( object value, IWriterRow row, MemberMapData memberMapData ) { if( value is byte[] byteArray ) { @@ -43,7 +43,7 @@ public override string ConvertToString( object value, IWriterRow row, PropertyMa : ByteArrayToHexString( byteArray ); } - return base.ConvertToString( value, row, propertyMapData ); + return base.ConvertToString( value, row, memberMapData ); } /// @@ -51,9 +51,9 @@ public override string ConvertToString( object value, IWriterRow row, PropertyMa /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { if( text != null ) { @@ -62,7 +62,7 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM : HexStringToByteArray( text ); } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } private string ByteArrayToHexString( byte[] byteArray ) diff --git a/src/CsvHelper/TypeConversion/ByteConverter.cs b/src/CsvHelper/TypeConversion/ByteConverter.cs index 3e9a01363..fc2d9a91e 100644 --- a/src/CsvHelper/TypeConversion/ByteConverter.cs +++ b/src/CsvHelper/TypeConversion/ByteConverter.cs @@ -18,19 +18,19 @@ public class ByteConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var numberStyle = propertyMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; + var numberStyle = memberMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; byte b; - if( byte.TryParse( text, numberStyle, propertyMapData.TypeConverterOptions.CultureInfo, out b ) ) + if( byte.TryParse( text, numberStyle, memberMapData.TypeConverterOptions.CultureInfo, out b ) ) { return b; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/CharConverter.cs b/src/CsvHelper/TypeConversion/CharConverter.cs index 49b6548e8..7901da385 100644 --- a/src/CsvHelper/TypeConversion/CharConverter.cs +++ b/src/CsvHelper/TypeConversion/CharConverter.cs @@ -17,9 +17,9 @@ public class CharConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { if( text != null && text.Length > 1 ) { @@ -32,7 +32,7 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM return c; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/CollectionGenericConverter.cs b/src/CsvHelper/TypeConversion/CollectionGenericConverter.cs index b4389f39e..1a08d16ac 100644 --- a/src/CsvHelper/TypeConversion/CollectionGenericConverter.cs +++ b/src/CsvHelper/TypeConversion/CollectionGenericConverter.cs @@ -21,23 +21,23 @@ public class CollectionGenericConverter : IEnumerableConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - // Since we're using the PropertyType here, this converter can be used for multiple types + // Since we're using the MemberType here, this converter can be used for multiple types // as long as they implement IList. - var list = (IList)ReflectionHelper.CreateInstance( propertyMapData.Member.MemberType() ); - var type = propertyMapData.Member.MemberType().GetGenericArguments()[0]; + var list = (IList)ReflectionHelper.CreateInstance( memberMapData.Member.MemberType() ); + var type = memberMapData.Member.MemberType().GetGenericArguments()[0]; - if( propertyMapData.IsNameSet || row.Configuration.HasHeaderRecord && !propertyMapData.IsIndexSet ) + if( memberMapData.IsNameSet || row.Configuration.HasHeaderRecord && !memberMapData.IsIndexSet ) { // Use the name. var nameIndex = 0; while( true ) { object field; - if( !row.TryGetField( type, propertyMapData.Names.FirstOrDefault(), nameIndex, out field ) ) + if( !row.TryGetField( type, memberMapData.Names.FirstOrDefault(), nameIndex, out field ) ) { break; } @@ -49,11 +49,11 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM else { // Use the index. - var indexEnd = propertyMapData.IndexEnd < propertyMapData.Index + var indexEnd = memberMapData.IndexEnd < memberMapData.Index ? row.Context.Record.Length - 1 - : propertyMapData.IndexEnd; + : memberMapData.IndexEnd; - for( var i = propertyMapData.Index; i <= indexEnd; i++ ) + for( var i = memberMapData.Index; i <= indexEnd; i++ ) { var field = row.GetField( type, i ); diff --git a/src/CsvHelper/TypeConversion/DateTimeConverter.cs b/src/CsvHelper/TypeConversion/DateTimeConverter.cs index 7acfbd1b0..c93713d4b 100644 --- a/src/CsvHelper/TypeConversion/DateTimeConverter.cs +++ b/src/CsvHelper/TypeConversion/DateTimeConverter.cs @@ -18,21 +18,21 @@ public class DateTimeConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { if( text == null ) { - return base.ConvertFromString( null, row, propertyMapData ); + return base.ConvertFromString( null, row, memberMapData ); } - var formatProvider = (IFormatProvider)propertyMapData.TypeConverterOptions.CultureInfo.GetFormat( typeof( DateTimeFormatInfo ) ) ?? propertyMapData.TypeConverterOptions.CultureInfo; - var dateTimeStyle = propertyMapData.TypeConverterOptions.DateTimeStyle ?? DateTimeStyles.None; + var formatProvider = (IFormatProvider)memberMapData.TypeConverterOptions.CultureInfo.GetFormat( typeof( DateTimeFormatInfo ) ) ?? memberMapData.TypeConverterOptions.CultureInfo; + var dateTimeStyle = memberMapData.TypeConverterOptions.DateTimeStyle ?? DateTimeStyles.None; - return propertyMapData.TypeConverterOptions.Formats == null || propertyMapData.TypeConverterOptions.Formats.Length == 0 + return memberMapData.TypeConverterOptions.Formats == null || memberMapData.TypeConverterOptions.Formats.Length == 0 ? DateTime.Parse( text, formatProvider, dateTimeStyle ) - : DateTime.ParseExact( text, propertyMapData.TypeConverterOptions.Formats, formatProvider, dateTimeStyle ); + : DateTime.ParseExact( text, memberMapData.TypeConverterOptions.Formats, formatProvider, dateTimeStyle ); } } } diff --git a/src/CsvHelper/TypeConversion/DateTimeOffsetConverter.cs b/src/CsvHelper/TypeConversion/DateTimeOffsetConverter.cs index 867313c66..ed48b3119 100644 --- a/src/CsvHelper/TypeConversion/DateTimeOffsetConverter.cs +++ b/src/CsvHelper/TypeConversion/DateTimeOffsetConverter.cs @@ -18,21 +18,21 @@ public class DateTimeOffsetConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { if( text == null ) { - return base.ConvertFromString( null, row, propertyMapData ); + return base.ConvertFromString( null, row, memberMapData ); } - var formatProvider = (IFormatProvider)propertyMapData.TypeConverterOptions.CultureInfo.GetFormat( typeof( DateTimeFormatInfo ) ) ?? propertyMapData.TypeConverterOptions.CultureInfo; - var dateTimeStyle = propertyMapData.TypeConverterOptions.DateTimeStyle ?? DateTimeStyles.None; + var formatProvider = (IFormatProvider)memberMapData.TypeConverterOptions.CultureInfo.GetFormat( typeof( DateTimeFormatInfo ) ) ?? memberMapData.TypeConverterOptions.CultureInfo; + var dateTimeStyle = memberMapData.TypeConverterOptions.DateTimeStyle ?? DateTimeStyles.None; - return propertyMapData.TypeConverterOptions.Formats == null || propertyMapData.TypeConverterOptions.Formats.Length == 0 + return memberMapData.TypeConverterOptions.Formats == null || memberMapData.TypeConverterOptions.Formats.Length == 0 ? DateTimeOffset.Parse( text, formatProvider, dateTimeStyle ) - : DateTimeOffset.ParseExact( text, propertyMapData.TypeConverterOptions.Formats, formatProvider, dateTimeStyle ); + : DateTimeOffset.ParseExact( text, memberMapData.TypeConverterOptions.Formats, formatProvider, dateTimeStyle ); } } } diff --git a/src/CsvHelper/TypeConversion/DecimalConverter.cs b/src/CsvHelper/TypeConversion/DecimalConverter.cs index 3eacc726b..6141c30c6 100644 --- a/src/CsvHelper/TypeConversion/DecimalConverter.cs +++ b/src/CsvHelper/TypeConversion/DecimalConverter.cs @@ -17,19 +17,19 @@ public class DecimalConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var numberStyle = propertyMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Float; + var numberStyle = memberMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Float; decimal d; - if( decimal.TryParse( text, numberStyle, propertyMapData.TypeConverterOptions.CultureInfo, out d ) ) + if( decimal.TryParse( text, numberStyle, memberMapData.TypeConverterOptions.CultureInfo, out d ) ) { return d; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/DefaultTypeConverter.cs b/src/CsvHelper/TypeConversion/DefaultTypeConverter.cs index 31473848a..1c4f0284e 100644 --- a/src/CsvHelper/TypeConversion/DefaultTypeConverter.cs +++ b/src/CsvHelper/TypeConversion/DefaultTypeConverter.cs @@ -19,9 +19,9 @@ public class DefaultTypeConverter : ITypeConverter /// /// The object to convert to a string. /// The for the current record. - /// The for the property/field being written. + /// The for the member being written. /// The string representation of the object. - public virtual string ConvertToString( object value, IWriterRow row, PropertyMapData propertyMapData ) + public virtual string ConvertToString( object value, IWriterRow row, MemberMapData memberMapData ) { if( value == null ) { @@ -31,8 +31,8 @@ public virtual string ConvertToString( object value, IWriterRow row, PropertyMap var formattable = value as IFormattable; if( formattable != null ) { - var format = propertyMapData.TypeConverterOptions.Formats?.FirstOrDefault(); - return formattable.ToString( format, propertyMapData.TypeConverterOptions.CultureInfo ); + var format = memberMapData.TypeConverterOptions.Formats?.FirstOrDefault(); + return formattable.ToString( format, memberMapData.TypeConverterOptions.CultureInfo ); } return value.ToString(); @@ -43,9 +43,9 @@ public virtual string ConvertToString( object value, IWriterRow row, PropertyMap /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public virtual object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public virtual object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { throw new TypeConverterException( (ReadingContext)row.Context, "The conversion cannot be performed." ); } diff --git a/src/CsvHelper/TypeConversion/DoubleConverter.cs b/src/CsvHelper/TypeConversion/DoubleConverter.cs index 121fd3b4f..c961739be 100644 --- a/src/CsvHelper/TypeConversion/DoubleConverter.cs +++ b/src/CsvHelper/TypeConversion/DoubleConverter.cs @@ -17,19 +17,19 @@ public class DoubleConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var numberStyle = propertyMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Float; + var numberStyle = memberMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Float; double d; - if( double.TryParse( text, numberStyle, propertyMapData.TypeConverterOptions.CultureInfo, out d ) ) + if( double.TryParse( text, numberStyle, memberMapData.TypeConverterOptions.CultureInfo, out d ) ) { return d; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/EnumConverter.cs b/src/CsvHelper/TypeConversion/EnumConverter.cs index 5853e7143..d9a7a8c4c 100644 --- a/src/CsvHelper/TypeConversion/EnumConverter.cs +++ b/src/CsvHelper/TypeConversion/EnumConverter.cs @@ -35,9 +35,9 @@ public EnumConverter( Type type ) /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { try { @@ -45,7 +45,7 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM } catch { - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/EnumerableConverter.cs b/src/CsvHelper/TypeConversion/EnumerableConverter.cs index 4a81c1e10..a4ebb2a13 100644 --- a/src/CsvHelper/TypeConversion/EnumerableConverter.cs +++ b/src/CsvHelper/TypeConversion/EnumerableConverter.cs @@ -22,9 +22,9 @@ public class EnumerableConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { var message = "Converting IEnumerable types is not supported for a single field. " + "If you want to do this, create your own ITypeConverter and register " + @@ -37,9 +37,9 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM /// /// The object to convert to a string. /// The for the current record. - /// The for the property/field being written. + /// The for the member being written. /// The string representation of the object. - public override string ConvertToString( object value, IWriterRow row, PropertyMapData propertyMapData ) + public override string ConvertToString( object value, IWriterRow row, MemberMapData memberMapData ) { var message = "Converting IEnumerable types is not supported for a single field. " + "If you want to do this, create your own ITypeConverter and register " + diff --git a/src/CsvHelper/TypeConversion/GuidConverter.cs b/src/CsvHelper/TypeConversion/GuidConverter.cs index a6691d8d0..21839dda8 100644 --- a/src/CsvHelper/TypeConversion/GuidConverter.cs +++ b/src/CsvHelper/TypeConversion/GuidConverter.cs @@ -18,13 +18,13 @@ public class GuidConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { if( text == null ) { - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } return new Guid( text ); diff --git a/src/CsvHelper/TypeConversion/IDictionaryConverter.cs b/src/CsvHelper/TypeConversion/IDictionaryConverter.cs index 14d126e5e..0519163bd 100644 --- a/src/CsvHelper/TypeConversion/IDictionaryConverter.cs +++ b/src/CsvHelper/TypeConversion/IDictionaryConverter.cs @@ -19,14 +19,14 @@ public class IDictionaryConverter : DefaultTypeConverter /// /// The object to convert to a string. /// The for the current record. - /// The for the property/field being written. + /// The for the member being written. /// The string representation of the object. - public override string ConvertToString( object value, IWriterRow row, PropertyMapData propertyMapData ) + public override string ConvertToString( object value, IWriterRow row, MemberMapData memberMapData ) { var dictionary = value as IDictionary; if( dictionary == null ) { - return base.ConvertToString( value, row, propertyMapData ); + return base.ConvertToString( value, row, memberMapData ); } foreach( DictionaryEntry entry in dictionary ) @@ -42,17 +42,17 @@ public override string ConvertToString( object value, IWriterRow row, PropertyMa /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { var dictionary = new Dictionary(); - var indexEnd = propertyMapData.IndexEnd < propertyMapData.Index + var indexEnd = memberMapData.IndexEnd < memberMapData.Index ? row.Context.Record.Length - 1 - : propertyMapData.IndexEnd; + : memberMapData.IndexEnd; - for( var i = propertyMapData.Index; i <= indexEnd; i++ ) + for( var i = memberMapData.Index; i <= indexEnd; i++ ) { string field; if( row.TryGetField( i, out field ) ) diff --git a/src/CsvHelper/TypeConversion/IDictionaryGenericConverter.cs b/src/CsvHelper/TypeConversion/IDictionaryGenericConverter.cs index 5fd1ddad1..6d06f6866 100644 --- a/src/CsvHelper/TypeConversion/IDictionaryGenericConverter.cs +++ b/src/CsvHelper/TypeConversion/IDictionaryGenericConverter.cs @@ -20,21 +20,21 @@ public class IDictionaryGenericConverter : IDictionaryConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var keyType = propertyMapData.Member.MemberType().GetGenericArguments()[0]; - var valueType = propertyMapData.Member.MemberType().GetGenericArguments()[1]; + var keyType = memberMapData.Member.MemberType().GetGenericArguments()[0]; + var valueType = memberMapData.Member.MemberType().GetGenericArguments()[1]; var dictionaryType = typeof( Dictionary<,> ); dictionaryType = dictionaryType.MakeGenericType( keyType, valueType ); var dictionary = (IDictionary)ReflectionHelper.CreateInstance( dictionaryType ); - var indexEnd = propertyMapData.IndexEnd < propertyMapData.Index + var indexEnd = memberMapData.IndexEnd < memberMapData.Index ? row.Context.Record.Length - 1 - : propertyMapData.IndexEnd; + : memberMapData.IndexEnd; - for( var i = propertyMapData.Index; i <= indexEnd; i++ ) + for( var i = memberMapData.Index; i <= indexEnd; i++ ) { var field = row.GetField( valueType, i ); diff --git a/src/CsvHelper/TypeConversion/IEnumerableConverter.cs b/src/CsvHelper/TypeConversion/IEnumerableConverter.cs index 19dac6dd4..dd7a6ffea 100644 --- a/src/CsvHelper/TypeConversion/IEnumerableConverter.cs +++ b/src/CsvHelper/TypeConversion/IEnumerableConverter.cs @@ -20,14 +20,14 @@ public class IEnumerableConverter : DefaultTypeConverter /// /// The object to convert to a string. /// - /// + /// /// The string representation of the object. - public override string ConvertToString( object value, IWriterRow row, PropertyMapData propertyMapData ) + public override string ConvertToString( object value, IWriterRow row, MemberMapData memberMapData ) { var list = value as IEnumerable; if( list == null ) { - return base.ConvertToString( value, row, propertyMapData ); + return base.ConvertToString( value, row, memberMapData ); } foreach( var item in list ) @@ -43,20 +43,20 @@ public override string ConvertToString( object value, IWriterRow row, PropertyMa /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { var list = new List(); - if( propertyMapData.IsNameSet || row.Configuration.HasHeaderRecord && !propertyMapData.IsIndexSet ) + if( memberMapData.IsNameSet || row.Configuration.HasHeaderRecord && !memberMapData.IsIndexSet ) { // Use the name. var nameIndex = 0; while( true ) { string field; - if( !row.TryGetField( propertyMapData.Names.FirstOrDefault(), nameIndex, out field ) ) + if( !row.TryGetField( memberMapData.Names.FirstOrDefault(), nameIndex, out field ) ) { break; } @@ -68,11 +68,11 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM else { // Use the index. - var indexEnd = propertyMapData.IndexEnd < propertyMapData.Index + var indexEnd = memberMapData.IndexEnd < memberMapData.Index ? row.Context.Record.Length - 1 - : propertyMapData.IndexEnd; + : memberMapData.IndexEnd; - for( var i = propertyMapData.Index; i <= indexEnd; i++ ) + for( var i = memberMapData.Index; i <= indexEnd; i++ ) { string field; if( row.TryGetField( i, out field ) ) diff --git a/src/CsvHelper/TypeConversion/IEnumerableGenericConverter.cs b/src/CsvHelper/TypeConversion/IEnumerableGenericConverter.cs index 3d183fec7..85529a1ea 100644 --- a/src/CsvHelper/TypeConversion/IEnumerableGenericConverter.cs +++ b/src/CsvHelper/TypeConversion/IEnumerableGenericConverter.cs @@ -21,23 +21,23 @@ public class IEnumerableGenericConverter : IEnumerableConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var type = propertyMapData.Member.MemberType().GetGenericArguments()[0]; + var type = memberMapData.Member.MemberType().GetGenericArguments()[0]; var listType = typeof( List<> ); listType = listType.MakeGenericType( type ); var list = (IList)ReflectionHelper.CreateInstance( listType ); - if( propertyMapData.IsNameSet || row.Configuration.HasHeaderRecord && !propertyMapData.IsIndexSet ) + if( memberMapData.IsNameSet || row.Configuration.HasHeaderRecord && !memberMapData.IsIndexSet ) { // Use the name. var nameIndex = 0; while( true ) { object field; - if( !row.TryGetField( type, propertyMapData.Names.FirstOrDefault(), nameIndex, out field ) ) + if( !row.TryGetField( type, memberMapData.Names.FirstOrDefault(), nameIndex, out field ) ) { break; } @@ -49,11 +49,11 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM else { // Use the index. - var indexEnd = propertyMapData.IndexEnd < propertyMapData.Index + var indexEnd = memberMapData.IndexEnd < memberMapData.Index ? row.Context.Record.Length - 1 - : propertyMapData.IndexEnd; + : memberMapData.IndexEnd; - for( var i = propertyMapData.Index; i <= indexEnd; i++ ) + for( var i = memberMapData.Index; i <= indexEnd; i++ ) { var field = row.GetField( type, i ); diff --git a/src/CsvHelper/TypeConversion/ITypeConverter.cs b/src/CsvHelper/TypeConversion/ITypeConverter.cs index 4543209db..679008f77 100644 --- a/src/CsvHelper/TypeConversion/ITypeConverter.cs +++ b/src/CsvHelper/TypeConversion/ITypeConverter.cs @@ -18,17 +18,17 @@ public interface ITypeConverter /// /// The object to convert to a string. /// The for the current record. - /// The for the property/field being written. + /// The for the member being written. /// The string representation of the object. - string ConvertToString( object value, IWriterRow row, PropertyMapData propertyMapData ); + string ConvertToString( object value, IWriterRow row, MemberMapData memberMapData ); /// /// Converts the string to an object. /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ); + object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ); } } diff --git a/src/CsvHelper/TypeConversion/Int16Converter.cs b/src/CsvHelper/TypeConversion/Int16Converter.cs index c6455fd85..15e538da1 100644 --- a/src/CsvHelper/TypeConversion/Int16Converter.cs +++ b/src/CsvHelper/TypeConversion/Int16Converter.cs @@ -17,19 +17,19 @@ public class Int16Converter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var numberStyle = propertyMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; + var numberStyle = memberMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; short s; - if( short.TryParse( text, numberStyle, propertyMapData.TypeConverterOptions.CultureInfo, out s ) ) + if( short.TryParse( text, numberStyle, memberMapData.TypeConverterOptions.CultureInfo, out s ) ) { return s; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/Int32Converter.cs b/src/CsvHelper/TypeConversion/Int32Converter.cs index 077e2ab81..490223e65 100644 --- a/src/CsvHelper/TypeConversion/Int32Converter.cs +++ b/src/CsvHelper/TypeConversion/Int32Converter.cs @@ -17,19 +17,19 @@ public class Int32Converter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var numberStyle = propertyMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; + var numberStyle = memberMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; int i; - if( int.TryParse( text, numberStyle, propertyMapData.TypeConverterOptions.CultureInfo, out i ) ) + if( int.TryParse( text, numberStyle, memberMapData.TypeConverterOptions.CultureInfo, out i ) ) { return i; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/Int64Converter.cs b/src/CsvHelper/TypeConversion/Int64Converter.cs index 96c7253f5..988d14839 100644 --- a/src/CsvHelper/TypeConversion/Int64Converter.cs +++ b/src/CsvHelper/TypeConversion/Int64Converter.cs @@ -17,19 +17,19 @@ public class Int64Converter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var numberStyle = propertyMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; + var numberStyle = memberMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; long l; - if( long.TryParse( text, numberStyle, propertyMapData.TypeConverterOptions.CultureInfo, out l ) ) + if( long.TryParse( text, numberStyle, memberMapData.TypeConverterOptions.CultureInfo, out l ) ) { return l; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/NullableConverter.cs b/src/CsvHelper/TypeConversion/NullableConverter.cs index 3dccac98c..19989ae0e 100644 --- a/src/CsvHelper/TypeConversion/NullableConverter.cs +++ b/src/CsvHelper/TypeConversion/NullableConverter.cs @@ -59,16 +59,16 @@ public NullableConverter( Type type ) /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { if( string.IsNullOrEmpty( text ) ) { return null; } - foreach( var nullValue in propertyMapData.TypeConverterOptions.NullValues ) + foreach( var nullValue in memberMapData.TypeConverterOptions.NullValues ) { if( text == nullValue ) { @@ -76,7 +76,7 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM } } - return UnderlyingTypeConverter.ConvertFromString( text, row, propertyMapData ); + return UnderlyingTypeConverter.ConvertFromString( text, row, memberMapData ); } /// @@ -84,11 +84,11 @@ public override object ConvertFromString( string text, IReaderRow row, PropertyM /// /// The object to convert to a string. /// - /// + /// /// The string representation of the object. - public override string ConvertToString( object value, IWriterRow row, PropertyMapData propertyMapData ) + public override string ConvertToString( object value, IWriterRow row, MemberMapData memberMapData ) { - return UnderlyingTypeConverter.ConvertToString( value, row, propertyMapData ); + return UnderlyingTypeConverter.ConvertToString( value, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/SByteConverter.cs b/src/CsvHelper/TypeConversion/SByteConverter.cs index 8b8f72720..3a922cfa5 100644 --- a/src/CsvHelper/TypeConversion/SByteConverter.cs +++ b/src/CsvHelper/TypeConversion/SByteConverter.cs @@ -17,19 +17,19 @@ public class SByteConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var numberStyle = propertyMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; + var numberStyle = memberMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; sbyte sb; - if( sbyte.TryParse( text, numberStyle, propertyMapData.TypeConverterOptions.CultureInfo, out sb ) ) + if( sbyte.TryParse( text, numberStyle, memberMapData.TypeConverterOptions.CultureInfo, out sb ) ) { return sb; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/SingleConverter.cs b/src/CsvHelper/TypeConversion/SingleConverter.cs index 4c80abe36..7f08790ea 100644 --- a/src/CsvHelper/TypeConversion/SingleConverter.cs +++ b/src/CsvHelper/TypeConversion/SingleConverter.cs @@ -18,19 +18,19 @@ public class SingleConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var numberStyle = propertyMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Float; + var numberStyle = memberMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Float; float f; - if( float.TryParse( text, numberStyle, propertyMapData.TypeConverterOptions.CultureInfo, out f ) ) + if( float.TryParse( text, numberStyle, memberMapData.TypeConverterOptions.CultureInfo, out f ) ) { return f; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/StringConverter.cs b/src/CsvHelper/TypeConversion/StringConverter.cs index d82394250..0264f5dc7 100644 --- a/src/CsvHelper/TypeConversion/StringConverter.cs +++ b/src/CsvHelper/TypeConversion/StringConverter.cs @@ -17,16 +17,16 @@ public class StringConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { if( text == null ) { return string.Empty; } - foreach( var nullValue in propertyMapData.TypeConverterOptions.NullValues ) + foreach( var nullValue in memberMapData.TypeConverterOptions.NullValues ) { if( text == nullValue ) { diff --git a/src/CsvHelper/TypeConversion/TimeSpanConverter.cs b/src/CsvHelper/TypeConversion/TimeSpanConverter.cs index eb948be28..fadfca4ed 100644 --- a/src/CsvHelper/TypeConversion/TimeSpanConverter.cs +++ b/src/CsvHelper/TypeConversion/TimeSpanConverter.cs @@ -18,26 +18,26 @@ public class TimeSpanConverter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var formatProvider = (IFormatProvider)propertyMapData.TypeConverterOptions.CultureInfo; + var formatProvider = (IFormatProvider)memberMapData.TypeConverterOptions.CultureInfo; TimeSpan span; - var timeSpanStyle = propertyMapData.TypeConverterOptions.TimeSpanStyle ?? TimeSpanStyles.None; - if( propertyMapData.TypeConverterOptions.Formats != null && TimeSpan.TryParseExact( text, propertyMapData.TypeConverterOptions.Formats, formatProvider, timeSpanStyle, out span ) ) + var timeSpanStyle = memberMapData.TypeConverterOptions.TimeSpanStyle ?? TimeSpanStyles.None; + if( memberMapData.TypeConverterOptions.Formats != null && TimeSpan.TryParseExact( text, memberMapData.TypeConverterOptions.Formats, formatProvider, timeSpanStyle, out span ) ) { return span; } - if( propertyMapData.TypeConverterOptions.Formats == null && TimeSpan.TryParse( text, formatProvider, out span ) ) + if( memberMapData.TypeConverterOptions.Formats == null && TimeSpan.TryParse( text, formatProvider, out span ) ) { return span; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/UInt16Converter.cs b/src/CsvHelper/TypeConversion/UInt16Converter.cs index 21e3d5889..3f709fa0c 100644 --- a/src/CsvHelper/TypeConversion/UInt16Converter.cs +++ b/src/CsvHelper/TypeConversion/UInt16Converter.cs @@ -17,19 +17,19 @@ public class UInt16Converter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var numberStyle = propertyMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; + var numberStyle = memberMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; ushort us; - if( ushort.TryParse( text, numberStyle, propertyMapData.TypeConverterOptions.CultureInfo, out us ) ) + if( ushort.TryParse( text, numberStyle, memberMapData.TypeConverterOptions.CultureInfo, out us ) ) { return us; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/UInt32Converter.cs b/src/CsvHelper/TypeConversion/UInt32Converter.cs index b0387a7d3..185da0354 100644 --- a/src/CsvHelper/TypeConversion/UInt32Converter.cs +++ b/src/CsvHelper/TypeConversion/UInt32Converter.cs @@ -17,19 +17,19 @@ public class UInt32Converter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var numberStyle = propertyMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; + var numberStyle = memberMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; uint ui; - if( uint.TryParse( text, numberStyle, propertyMapData.TypeConverterOptions.CultureInfo, out ui ) ) + if( uint.TryParse( text, numberStyle, memberMapData.TypeConverterOptions.CultureInfo, out ui ) ) { return ui; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/TypeConversion/UInt64Converter.cs b/src/CsvHelper/TypeConversion/UInt64Converter.cs index ba4574de9..51004916a 100644 --- a/src/CsvHelper/TypeConversion/UInt64Converter.cs +++ b/src/CsvHelper/TypeConversion/UInt64Converter.cs @@ -17,19 +17,19 @@ public class UInt64Converter : DefaultTypeConverter /// /// The string to convert to an object. /// The for the current record. - /// The for the property/field being created. + /// The for the member being created. /// The object created from the string. - public override object ConvertFromString( string text, IReaderRow row, PropertyMapData propertyMapData ) + public override object ConvertFromString( string text, IReaderRow row, MemberMapData memberMapData ) { - var numberStyle = propertyMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; + var numberStyle = memberMapData.TypeConverterOptions.NumberStyle ?? NumberStyles.Integer; ulong ul; - if( ulong.TryParse( text, numberStyle, propertyMapData.TypeConverterOptions.CultureInfo, out ul ) ) + if( ulong.TryParse( text, numberStyle, memberMapData.TypeConverterOptions.CultureInfo, out ul ) ) { return ul; } - return base.ConvertFromString( text, row, propertyMapData ); + return base.ConvertFromString( text, row, memberMapData ); } } } diff --git a/src/CsvHelper/WritingContext.cs b/src/CsvHelper/WritingContext.cs index 9edeef209..3b1cd9af5 100644 --- a/src/CsvHelper/WritingContext.cs +++ b/src/CsvHelper/WritingContext.cs @@ -23,7 +23,7 @@ public class WritingContext : IWriterContext, ISerializerContext, IDisposable internal Dictionary TypeConverterOptionsCache { get; } = new Dictionary(); - internal PropertyMapData ReusablePropertyMapData { get; } = new PropertyMapData( null ); + internal MemberMapData ReusableMemberMapData { get; } = new MemberMapData( null ); /// /// Gets the writer configuration.