Comments (3)
I could not repro the problem in this test:
https://github.com/dahomey-technologies/Dahomey.Cbor/blob/master/src/Dahomey.Cbor.Tests/Issues/Issue0091.cs
from dahomey.cbor.
Ok. I will try and reproduce this and get back
from dahomey.cbor.
@mcatanzariti The serialization/deserialization needs to be done on the abstract type. Here is a modified version of Issue0091.cs that fails:
#if NET6_0_OR_GREATER
using Dahomey.Cbor.Attributes;
using Dahomey.Cbor.Serialization.Conventions;
using System;
using Xunit;
namespace Dahomey.Cbor.Tests.Issues
{
public class Issue0091
{
public abstract record class Animal(DateTime Timestamp)
{
}
[CborDiscriminator("dog")]
public record class Dog(string Color, DateTime Timestamp) : Animal(Timestamp)
{
// This example does not fail if this empty constructor is present
//private Dog() : this("black", default)
//{
//}
}
[Fact]
public void TestReadWrite()
{
CborOptions options = new CborOptions();
options.Registry.DiscriminatorConventionRegistry.RegisterConvention(new AttributeBasedDiscriminatorConvention<string>(options.Registry));
options.Registry.DiscriminatorConventionRegistry.RegisterType(typeof(Dog));
Dog dog = new("black", DateTime.Parse("2022-10-24T14:05:08Z"));
var cbor = Helper.Write<Animal>(dog, options);
Animal deserialized = Helper.Read<Animal>(cbor, options);
Assert.NotNull(deserialized);
Dog dog2 = Assert.IsType<Dog>(deserialized);
Assert.Equal(dog.Color, dog2.Color);
Assert.Equal(dog.Timestamp, dog2.Timestamp);
}
}
}
#endif
from dahomey.cbor.
Related Issues (20)
- Cannot serialize enum in object member HOT 1
- Project status HOT 1
- Security Issues with Polymorphic support in serialization
- How to convert CborValue to standard .NET type? HOT 2
- Omit property name when serializing. HOT 1
- Serializing mixed type Collections HOT 2
- Incorrect DateTime wire encoding
- Library is not threadsafe HOT 4
- Reflection HOT 1
- Add support for .NET Framework HOT 1
- Method not found !!0 Dahomey.Cbor.Cbor.Deserialize<!0>(System.ReadOnlySpan`1<byte>,Dahomey.Cbor.CborOptions) HOT 4
- Issue with Xamarin Forms linker and default constructor HOT 4
- Support record classes HOT 2
- Feature request: Add and support int key for CborPropertyAttribute HOT 2
- In DateTimeConverter, let DateTime.Kind be unspecified if it is in fact unspecified HOT 2
- Consider letting CborReader.SkipDataItem skip semantic tags HOT 1
- How-to do a Custom ArrayConverter HOT 2
- Consider adding CborWriter.WriteByteString(int) and WriteByteString(ReadOnlySequence<byte>) HOT 3
- Feature request: Add ReadOnlySequence<byte> overload to CborReader
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dahomey.cbor.