public TypePropertyDescriptor GetOrAdd(Type type, Func<Type, TypePropertyDescriptor> factory) { if (type == null) throw new ArgumentNullException(nameof(type)); if (factory == null) throw new ArgumentNullException(nameof(factory)); return this.cache.GetOrAdd(type, factory); }