Add ObjectPoolContainerSerializer
parent
2e6e0094ac
commit
53d1138cb9
|
@ -56,10 +56,12 @@
|
|||
<Compile Include="mapping\JSONDictionaryMapping.cs" />
|
||||
<Compile Include="mapping\JSONExceptionMapping.cs" />
|
||||
<Compile Include="mapping\JSONIPv6Mapping.cs" />
|
||||
<Compile Include="reflection\ObjectPoolContainerSerializer.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="mapping\" />
|
||||
<Folder Include="attributes\" />
|
||||
<Folder Include="reflection\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ln.types\ln.types.csproj">
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
using System;
|
||||
using ln.types.reflection;
|
||||
using ln.json.mapping;
|
||||
namespace ln.json.reflection
|
||||
{
|
||||
public class ObjectPoolContainerSerializer
|
||||
{
|
||||
public ObjectPoolContainer ObjectPoolContainer { get; }
|
||||
|
||||
public ObjectPoolContainerSerializer(ObjectPoolContainer objectPoolContainer)
|
||||
{
|
||||
ObjectPoolContainer = objectPoolContainer;
|
||||
}
|
||||
|
||||
public JSONObject Serialize()
|
||||
{
|
||||
JSONObject serializedPoolContainer = new JSONObject();
|
||||
|
||||
foreach (ObjectPool objectPool in ObjectPoolContainer.Pools)
|
||||
{
|
||||
JSONArray objectList = new JSONArray();
|
||||
|
||||
foreach (object o in objectPool.Instances)
|
||||
{
|
||||
objectList.Add(JSONMapper.DefaultMapper.ToJson(o));
|
||||
}
|
||||
|
||||
serializedPoolContainer.Add(objectPool.ObjectType.Name, objectList);
|
||||
}
|
||||
|
||||
return serializedPoolContainer;
|
||||
}
|
||||
|
||||
public void Unserialize(JSONObject serializedPoolContainer)
|
||||
{
|
||||
foreach (ObjectPool objectPool in ObjectPoolContainer.Pools)
|
||||
{
|
||||
if (serializedPoolContainer.ContainsKey(objectPool.ObjectType.Name))
|
||||
{
|
||||
JSONArray serializedObjects = serializedPoolContainer[objectPool.ObjectType.Name] as JSONArray;
|
||||
foreach (JSONObject serializedObject in serializedObjects.Children)
|
||||
{
|
||||
objectPool.Add(JSONMapper.DefaultMapper.FromJson(serializedObject, objectPool.ObjectType));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue