DataTableSerializer 0.2.2
dotnet add package DataTableSerializer --version 0.2.2
NuGet\Install-Package DataTableSerializer -Version 0.2.2
<PackageReference Include="DataTableSerializer" Version="0.2.2" />
paket add DataTableSerializer --version 0.2.2
#r "nuget: DataTableSerializer, 0.2.2"
// Install DataTableSerializer as a Cake Addin #addin nuget:?package=DataTableSerializer&version=0.2.2 // Install DataTableSerializer as a Cake Tool #tool nuget:?package=DataTableSerializer&version=0.2.2
DataTableSerializer
A .NET library to serialize an object into a DataTable in a single line via extension method. This saves the time of updating the serialization code whenever the model changes and avoiding doing type mistakes.
Basic usage
Import the library
using DataTableSerializer;
Fill the table with a list of objects
Employee employee = new Employee()
{
FirstName = "fname",
LastName = "lname",
DateOfBirth = new DateTime(1970, 1, 1);,
EmployeeId = 123456
};
var employeeList = new List<Employee> { employee };
DataTable dataTable = new DataTable();
dataTable.Fill<Employee>(employeeList);
In the last line, the Fill
method does the work for you
Property transformations
DataTable
doesn't support nullable types, so sometimes it could be handy to add a transformation to the properties.
The example below shows how to use a PropertyTransfomer
to map a DateTime?
(not allowed because it's nullable) to a string
.
var converter = new PropertyTransformer()
.AddTransformation<EmployeeNullableDob, DateTime?, string?>(e => e.DateOfBirth, dob => dob?.ToLongDateString());
DataTable dataTable = new DataTable();
dataTable.Fill<EmployeeNullableDob>(employeeList, converter);
Look at the tests to see this example in action.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Fixed namespace error