Add type-mapping to data objects using the WCF DataContract attribute. #264
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Newtonsoft JSON.net supports the DataContract attribute, but doesn't support the name and namespace members. By adding our own SerializationBinder, we can pick up on the name and namespace member and use that as a type declaration for in the JSON output.
Through this mechanism, we can ensure that changes in the naming or namespaces of classes do not affect project files stored after this change. As long as the DataContract name and namespace doesn't change the application will always be able to find the associated class.
As a namespace, we have followed LinkedData recommendations by using a URL. Later on we could even add LD schema's at those locations but let's not get ahead of ourselves :)