/// <summary> /// Adds the given converter to the registry. /// </summary> /// <typeparam name="T">The </typeparam> /// <param name="converter">The converter to add.</param> /// <exception cref="ArgumentException">There is already a converter in the registry for the given type.</exception> public void Add <T>(IFirestoreConverter <T> converter) { GaxPreconditions.CheckNotNull(converter, nameof(converter)); _converters.Add(typeof(T), new CustomConverter <T>(converter)); _converterList.Add(converter); }
// Method to make the reflection simpler. private static IFirestoreInternalConverter CreateInstance <T>(IFirestoreConverter <T> wrappedConverter) => new CustomConverter <T>(wrappedConverter);