Comments (2)
I can't reproduce this behavior. I'm using the test below.
var currency = Currency.FromCode("CZK");
string json = JsonConvert.SerializeObject(currency);
var clone = JsonConvert.DeserializeObject<Currency>(json);
clone.Should().Be(currency);
clone.Namespace.Should().NotBeNull();
clone.Number.Should().NotBe(default);
You are saying the following properties after deserializing are null which is not possible, because they are structs.
// Number null
// Symbol null
// ValidFrom null
// ValidTo null
from nodamoney.
On my machine, that test fails on second assertion because of Namespace
being null.
I think we're on different version. I use NuGet package NodaMoney 1.0.5 released on 29/8/2018 corresponding to commit 5ee1065. In that version, the Currency
struct is marked with DataContractAttribute
and it looks like Newtonsoft.Json is using that to (de)serialize Code
property only. Maybe you test with master
branch; it includes commit 3c0d3e0, in which some serialization changes were made.
Why couldn't those properties be null? Number
and Symbol
are strings, ValidFrom
and ValidTo
are nullable dates.
from nodamoney.
Related Issues (20)
- Fix for rounded value in ExchangeRate HOT 1
- Taxed money type HOT 1
- Newtonsoft Json serialization of default(Money) fails HOT 5
- Provide ExchangeRate JsonConverter out-of-the-box
- Addition/Subtraction with default(Money) should not throw InvalidCurrencyException HOT 1
- Serializing default Money property in a class (PR#70) HOT 6
- sample code doesn't work
- System.ArgumentOutOfRangeException when printing certain currencies
- Failing Tests - GivenIWantToParseImplicitCurrency HOT 2
- Money.ToString() fails for all currency with NotApplicable (-1) decimal places
- Reduce dependency on CultureInfo.Current and Thread Current culture.
- Why Currency is a struct, not class? HOT 3
- Money constructor with default currency rounds amount HOT 2
- Currency code should be Enum, not a struct HOT 1
- Does NodaMoney run on Mono? What Dependencies are needed?
- Why a dependency on Newtonsoft.Json
- Does not have a strong name
- ExchangeRate how to? HOT 1
- Disable implicit conversion of decimal to money as static configuration option HOT 1
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 nodamoney.