Serialisierung von typisierten Schnittstellenmitgliedern mit Parquet.net
Posted: 09 Mar 2025, 13:46
Mit Parquet.net, gibt es eine Möglichkeit, Typen zu serialisieren, deren Mitglied eine Schnittstelle getippt ist?
Code: Select all
using Parquet.Serialization;
//using MemoryStream stream = new();
//await ParquetSerializer.SerializeAsync([new LineOK ()], stream);
using MemoryStream stream = new();
await ParquetSerializer.SerializeAsync([new LineKO()], stream);
interface IPoint
{
decimal X { get; set; }
decimal Y { get; set; }
}
class Point : IPoint
{
public decimal X { get; set; }
public decimal Y { get; set; }
}
class LineOK
{
public Point Start { get; } = new();
public Point End { get; } = new();
}
class LineKO
{
public IPoint Start { get; } = new Point();
public IPoint End { get; } = new Point();
}
< /code>
Ich glaube, ich verstehe das logische Problem: In einer Reihe von Objekten könnten wir unterschiedliche Implementierungen haben, daher gibt es in dem Fall eine einzelne Implementierung im Datensatz.using MemoryStream stream = new();
await ParquetSerializer.SerializeAsync([new LineDto(new LineKO())], stream);
class LineDto
{
public Point Start { get; }
public Point End { get; }
public LineDto(LineKO lineKo)
{
Start = (Point)lineKo.Start;
End = (Point)lineKo.End;
}
}