Comments (10)
Also, does Aqla support IReadOnlyDictionary, IReadOnlyCollection, IReadOnlySet?
from aqlaserializer.
You are right, they must be supported. They simply did not exist at the time of active development of AqlaSerializer. I'm going to add support for them some time later.
from aqlaserializer.
The complicated thing here is that non generic ICollection
doesn't have an Add
method so I had to use IList
.
from aqlaserializer.
Is there any updates on this issue? When can we get the solution for it?
from aqlaserializer.
It turned out to be easier than I thought. I already have a working implemention of ISet support.
from aqlaserializer.
I uploaded a new version with all these interfaces supported. Please confirm that it works on your side.
from aqlaserializer.
It works at interface level. However, what I serialized type is different from the deserialized type:
System.Collections.ObjectModel.ReadOnlyCollection -> System.Collections.Generic.List
System.Collections.ObjectModel.ReadOnlyDictionary<string, int> -> System.Collections.Generic.Dictionary<string, int>
Is it possible to deserialize back the same type as serialized?
from aqlaserializer.
No, but you can make surrogates for them. What is your usage scenario so that you care about underlying type? In OOP you should not downcast things, you are expected to use them only by provided interfaces.
from aqlaserializer.
We have unit tests which compare the objects before and after serialization. The comparison verifies the object types to make sure that through deep cloning, we get exactly the same object back.
from aqlaserializer.
Ok. As I said you can use surrogates to hook into serialization process.
I don't see how type changing like this may cause an issue in a real app so I'm closing this.
from aqlaserializer.
Related Issues (20)
- RuntimeTypeModel.Default.CompileInPlace is too slow HOT 5
- Non-public member cannot be used with full dll compilation HOT 12
- AqlaSerializer.ProtoException: Trap count > 1, will be mismatched with next NoteObject HOT 15
- Dynamic type is not a contract-type
- Un-defined enum values HOT 1
- Unexpected sub-type HOT 4
- How to setup Aqla for complicated object relationships HOT 4
- Wrong group was ended
- Recursion depth exceeded safe limit HOT 2
- "Unable to determine member" when running obfuscated code HOT 1
- A deferred key does not have a value yet (NoteObject call missed?) HOT 10
- How to unregister or re-register a type? HOT 6
- Can you please publish the latest code?
- Failed to clone a dictionary with enum value
- Unable to Serialize a string object dictionary containing a string array as object
- Is Aqla's metadata inspection thread-safe? HOT 2
- Is there a way to re-compile the runtime type model as a dll? HOT 2
- Can we reformat the source code? HOT 1
- Reference tracking error message only for release build but not for debug build
- When a SortedDictionary is serialized, does Aqla keep the "Comparer" of it? 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 aqlaserializer.