Cannot deserialize HashSet<>
I have a class that contains a HashSet
if (pi.IsGenericType && pi.IsValueType == false && v is List<object>)
oset = CreateGenericList((List<object>)v, pi.pt, pi.bt, globaltypes);
No specific type seems to be stored in the $types array. Here's an example, where bseos is a HashSet
{
"$types" : {
"MockServer.SerializedAccount, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" : "1"
},
"$type" : "1",
"username" : "jhughes2112",
"bseos" : [
"bee79025-5908-4235-9095-c0da046fb461",
"377c212a-60dc-4b52-8e91-32fa1a8bb4c2"
]
}
I can convert this to a List
Thanks!
You know I have never used a HashSet !!
I believe you can swap it with a List for data transfer objects, and it seems only good for set operations...
HashSet is basically just the keys part of the Dictionary type. Very fast lookups and strongly typed, but also has set operations. It's good!
In my case List works fine. Out of curiosity, is there a way to extend fastJSON with new types easily?
You can use RegisterCustomType().
If HashSet implemented IList all would be good, so I will have to find another way...
Seems like anything derived from IEnumerable<T> could be handled generically, which would take care of most or all of the Collections.Generic types.