Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Questions about Custom Serialization #890

Closed
cd-zhang2020 opened this issue Jan 8, 2024 · 4 comments
Closed

Questions about Custom Serialization #890

cd-zhang2020 opened this issue Jan 8, 2024 · 4 comments

Comments

@cd-zhang2020
Copy link

Hello,Is it possible to add attributes to specified fields to implement a custom serialization and deserialization method?

For example Newtonsoft.Json

[JsonConverter(typeof(CustomConverter))]

var serializer = new SerializerBuilder() .WithTypeConverter(new CustomConverter()) .Build();

I use the above code to customize the serialization, but this is a global method

@EdwardCooke
Copy link
Collaborator

Not that I’m aware of. You’d need to have multiple builders to do different type converters like your asking about.

@cd-zhang2020
Copy link
Author

@EdwardCooke Thank you for your answer,The functionality I want to implement cannot be handled with different types converters。

For example

serverConnector:
   id: server1
   addresses:
     - 127.0.0.1:8091
   protocol: grpc
   connectTimeout: 500ms
   messageTimeout: 5s
   connectionIdleTimeout: 60s
   serverSwitchInterval: 10m
   reconnectInterval: 500ms

Deserialize the string 500ms into the number 500, and deserialize the string 5s into the number 5000,I can't convert all strings to numbers

@EdwardCooke
Copy link
Collaborator

I’ll work on adding this feature.

@EdwardCooke
Copy link
Collaborator

You can now specify a custom type converter on the property using the YamlConverter attribute. Be sure to register the converter with the serializer builder so it's used. In the AcceptsType method, just return false.

Here's the tests that show how to do it.

https://github.com/aaubry/YamlDotNet/blob/master/YamlDotNet.Test/Serialization/TypeConverterAttributeTests.cs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants