Esempio n. 1
0
        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));
        }
Esempio n. 2
0
 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");
     };
 }