diff --git a/ln.json/ln.json.csproj b/ln.json/ln.json.csproj
index df10548..4c37b94 100644
--- a/ln.json/ln.json.csproj
+++ b/ln.json/ln.json.csproj
@@ -9,7 +9,7 @@
true
0.1.0.0
0.1.0.0
- 1.2.1
+ 1.2.2
net5.0;net6.0
diff --git a/ln.json/mapping/JSONMapper.cs b/ln.json/mapping/JSONMapper.cs
index f14e1b5..db06040 100644
--- a/ln.json/mapping/JSONMapper.cs
+++ b/ln.json/mapping/JSONMapper.cs
@@ -54,7 +54,14 @@ namespace ln.json.mapping
Dictionary mappings = new Dictionary();
- public virtual void Add(JSONMapping mapping) => mappings[mapping.TargetType] = mapping;
+
+ public virtual void Add(JSONMapping mapping)
+ {
+ lock (mappings)
+ {
+ mappings[mapping.TargetType] = mapping;
+ }
+ }
Dictionary mappingFactories = new Dictionary();
public virtual void AddMappingFactory(Type targetType, MappingFactory mappingFactory) => mappingFactories.Add(targetType, mappingFactory);
@@ -63,12 +70,16 @@ namespace ln.json.mapping
public virtual bool TryBuildRememberedMapping(Type nativeType,out JSONMapping mapping)
{
- if (TryBuildMapping(nativeType, out mapping))
+ lock (mappings)
{
- mappings.Add(nativeType, mapping);
- return true;
+ if (TryBuildMapping(nativeType, out mapping))
+ {
+ mappings.Add(nativeType, mapping);
+ return true;
+ }
+
+ return false;
}
- return false;
}
public virtual bool TryBuildMapping(Type nativeType,out JSONMapping mapping)
{
@@ -119,16 +130,19 @@ namespace ln.json.mapping
public virtual bool TryGetMapping(Type nativeType,out JSONMapping mapping)
{
- if (mappings.TryGetValue(nativeType, out mapping))
- return true;
+ lock (mappings)
+ {
+ if (mappings.TryGetValue(nativeType, out mapping))
+ return true;
- if (RequestCustomMapping(nativeType, out mapping))
- return true;
+ if (RequestCustomMapping(nativeType, out mapping))
+ return true;
- if ((this != DefaultMapper) && DefaultMapper.TryGetMapping(nativeType, out mapping))
- return true;
+ if ((this != DefaultMapper) && DefaultMapper.TryGetMapping(nativeType, out mapping))
+ return true;
- return false;
+ return false;
+ }
}