public SerializationTypeInfo GetInfo(string discriminator) { SerializationTypeInfo result; _cacheLock.EnterReadLock(); try { if (_infoByDiscriminator.TryGetValue(discriminator, out result)) { return(result); } } finally { _cacheLock.ExitReadLock(); } _cacheLock.EnterWriteLock(); try { EnsureModule(SerializationTypeName.Parse(discriminator).ModuleCode); } finally { _cacheLock.ExitWriteLock(); } if (_infoByDiscriminator.TryGetValue(discriminator, out result)) { return(result); } throw new ArgumentException( $"No valid serialization configuration found for discriminator '{discriminator}'.", nameof(discriminator)); }
internal void SerializationTypeNameTests(SerializationTypeName name) { WHEN["parsing a valid name"] = () => name = SerializationTypeName.Parse("TEST:Test.Sample"); THEN["the result is correct"] = () => { name.ModuleCode.Should().Be("TEST"); name.Name.Should().Be("Test.Sample"); }; }