Comments (5)
Please provide a working code sample as we can't reproduce this behavior.
See #174 for a working example regarding serialization.
from yaxlib.
A .Net Fiddle that shows the result as well.
The first result is kind of as expected.
The second result however, I'm not sure if I'm using the Serializer.Options incorrectly, but it shouldn't be appearing from my understanding?
Expected output for the second one should be
<MyObj>
</MyObj>
or
<MyObj />
from yaxlib.
Please provide a working code sample as we can't reproduce this behavior. See #174 for a working example regarding serialization.
Upon comparing the difference between the code I was using and the code provided in #174, setting the serializer.Options.SerializationOptions
after the creation of the serializer while allowed (Has a public setter), it's not respected.
When creating a new SerializerOptions
in the constructor, it works as expected.
from yaxlib.
Changing the
SerializerOptions
after creating the instance ofYAXSerializer
has no effect. This, however, will work:[Test] public void DontSerializeNullObjects_Test() { var serializer = new YAXSerializer(typeof(MyObj), new SerializerOptions {SerializationOptions = YAXSerializationOptions.DontSerializeNullObjects }); //serializer.Options.SerializationOptions = YAXSerializationOptions.DontSerializeNullObjects; var empty = new MyObj { MyValue = "" }; var nullVal = new MyObj { MyValue = null }; var emptyRes = serializer.Serialize(empty); var nullRes = serializer.Serialize(nullVal); emptyRes.Should().Contain("MyValue"); nullRes.Should().NotContain("MyValue"); }That`s why we're asking for a working code sample ;-)
I didn't realize that it would have been because applying the settings after creating the serializer would be the issue, hence why I didn't provide a code example.
In 4.x, or even potentially risking a breaking change in 3.x, and making the setters private for those? And only accepting the values from the constructor, with all arguments being optional?
from yaxlib.
Changing the SerializerOptions
after creating the instance of YAXSerializer
has no effect.
This, however, will work:
[Test]
public void DontSerializeNullObjects_Test()
{
var serializer = new YAXSerializer(typeof(MyObj), new SerializerOptions {SerializationOptions = YAXSerializationOptions.DontSerializeNullObjects });
//serializer.Options.SerializationOptions = YAXSerializationOptions.DontSerializeNullObjects;
var empty = new MyObj { MyValue = "" };
var nullVal = new MyObj { MyValue = null };
var emptyRes = serializer.Serialize(empty);
var nullRes = serializer.Serialize(nullVal);
emptyRes.Should().Contain("MyValue");
nullRes.Should().NotContain("MyValue");
}
That`s why we're asking for a working code sample ;-)
from yaxlib.
Related Issues (20)
- Dictionary serialization incorrect when publishing to single file HOT 4
- Generic deserialization methods should not hide base methods with 'new', e.g. with a generic base class HOT 1
- Possible regression caused by PR #183 HOT 9
- Extend tests to cover YAXSerializer and YAXSerializer<T> HOT 2
- Extend caching and pooling for better performance HOT 10
- Split IYAXSerializer<T> to IYAXSerializer<T> and IYAXDeserializer<T> HOT 7
- Make Exception a KnownType HOT 4
- All public members of YAXSerializer (generic/non-generic) should be fully covered by unit tests HOT 1
- How serialize a list as an attribute HOT 7
- Extend SerializationContext for pre-processing in ICustomSerializer and IKnownType
- Add unit tests for YAXCollectionItemTypeAttribute and YAXElementForAttribute
- Add YAXSerializationOptions.StripInvalidXmlChars HOT 3
- Structs are not serialized correctly HOT 3
- Update docs for new v4 features
- Multiple Elements with Same Name? How to Deserialize?
- Add support for DateOnly and TimeOnly types
- Is it possible deserialize to property by attribute name and inner xml with YAXLib?
- Serializing/Deserializing ValueTuples HOT 1
- Serialize not filtering properties correctly in .NET Standard HOT 6
- Serialized strings that use the stringbuilder pool throw when the string's length is > 1024 (DefaultStringBuilderCapacity).
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 yaxlib.