In version 2.20:
If I create a SharpSerializer object, then call SharpSerializer.Deserialize(...) multiple times using the same object, an exception is thrown. I tracked it down to the private field Dictionary<,> XmlPropertyDeserializer._propertyCache. That dictionary
is never cleared, but upon reuse (e.g. attempting to reload the same file), a duplicate key is added to _propertyCache which raises an exception. It appears that it only happens when loading Complex type properties and not Simple properties.
At about line 144 in XMLPropertyDeserializer.cs:
To duplicate the problem, serialize a class with a "complex" property (i.e. class). Deserialize it multiple times using the same SharpSerializer object.