BinToss.XmlSourceGenerator.Abstractions
2.0.1
dotnet add package BinToss.XmlSourceGenerator.Abstractions --version 2.0.1
NuGet\Install-Package BinToss.XmlSourceGenerator.Abstractions -Version 2.0.1
<PackageReference Include="BinToss.XmlSourceGenerator.Abstractions" Version="2.0.1" />
<PackageVersion Include="BinToss.XmlSourceGenerator.Abstractions" Version="2.0.1" />
<PackageReference Include="BinToss.XmlSourceGenerator.Abstractions" />
paket add BinToss.XmlSourceGenerator.Abstractions --version 2.0.1
#r "nuget: BinToss.XmlSourceGenerator.Abstractions, 2.0.1"
#:package BinToss.XmlSourceGenerator.Abstractions@2.0.1
#addin nuget:?package=BinToss.XmlSourceGenerator.Abstractions&version=2.0.1
#tool nuget:?package=BinToss.XmlSourceGenerator.Abstractions&version=2.0.1
XmlSourceGenerator
High-performance XML serialization via C# source generation with full XmlSerializer feature parity.
Features
✅ Zero Runtime Overhead - Code generated at compile time
✅ XmlSerializer Parity - 23/28 features supported (82% complete)
✅ Type Safety - Compile-time errors instead of runtime exceptions
✅ IntelliSense Support - Full IDE integration
✅ Polymorphism - [XmlInclude] and inheritance support
✅ Property Overrides - Automatic attribute inheritance for override properties
✅ Advanced Features - [XmlEnum], [XmlType], [XmlAnyElement], [XmlAnyAttribute]
✅ XML Namespaces - Full element and root namespace support
✅ Collections - Lists, arrays with customizable element names
Quick Start
dotnet add package XmlSourceGenerator
[XmlRoot("User")]
[XmlAutoGenerated]
public partial class User
{
[XmlAttribute("id")]
public int Id { get; set; }
[XmlElement("FullName")]
public string Name { get; set; }
[XmlFormat("yyyy-MM-dd")]
public DateTime BirthDate { get; set; }
}
// Usage
var user = new User { Id = 1, Name = "John", BirthDate = new DateTime(1990, 1, 1) };
var xml = user.WriteToXml();
Documentation
- 📖 Getting Started
- 🔄 Migration Guide - Migrate from XmlSerializer
- 🏷️ Attributes Reference
- 🚀 Advanced Features
- 📊 XmlSerializer Comparison
- 📚 API Reference
- 🤝 Contributing
Why XmlSourceGenerator?
| Feature | XmlSerializer | XmlSourceGenerator |
|---|---|---|
| Performance | Reflection-based | Source generation |
| Trimming Support | ⚠️ Limited | ✅ Full |
| AOT Compatible | ❌ No | ✅ Yes |
| Compile-time Safety | ❌ No | ✅ Yes |
| Code Visibility | ❌ Hidden | ✅ Visible |
Test Coverage & Quality
156 tests ensuring production-ready reliability:
- ✅ 116 Integration Tests - End-to-end feature validation
- ✅ 32 Unit Tests - Internal component verification
- ✅ 3 Thread Safety Tests - 100+ concurrent operations verified
- ✅ 5 Stress Tests - Deep nesting (10 levels) & large collections (1,000+ items)
- ✅ 7 Performance Benchmarks - BenchmarkDotNet for optimization tracking
All tests passing with comprehensive coverage of:
- Property overrides and inheritance
- XML attribute combinations
- Polymorphism and collections
- Error handling and edge cases
License
MIT © Saivineeth
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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 is compatible. 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. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.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 is compatible. net463 was computed. net47 is compatible. net471 was computed. net472 was computed. net48 is compatible. 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. |
-
.NETFramework 4.6.2
- System.Text.Json (>= 10.0.13)
- System.ValueTuple (>= 4.6.2)
-
.NETFramework 4.7
- System.Text.Json (>= 10.0.13)
-
.NETFramework 4.8
- System.Text.Json (>= 10.0.13)
-
.NETStandard 2.0
- System.Text.Json (>= 10.0.13)
-
net10.0
- No dependencies.
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on BinToss.XmlSourceGenerator.Abstractions:
| Package | Downloads |
|---|---|
|
HXE
A HCE wrapper and SPV3 loader |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.1 | 170 | 10/24/2026 |
| 2.0.0 | 92 | 10/23/2026 |
| 0.0.1-DUMMY | 75 | 10/23/2026 |