/// <summary> /// Registers <paramref name="attributeType"/> to be read by <paramref name="reader"/>. /// </summary> /// <param name="attributeType">Type of attribute.</param> /// <param name="reader">Reader to process attributes of type <paramref name="attributeType"/>.</param> /// <returns>Self (for fluency).</returns> public AttributeMetadataReaderCollection Add(Type attributeType, IAttributeMetadataReader reader) { Ensure.NotNull(attributeType, "attributeType"); Ensure.NotNull(reader, "reader"); lock (storageLock) { values[attributeType] = reader; } return(this); }
/// <summary> /// Registers <typeparamref name="TAttribute"/> to be read by <paramref name="reader"/>. /// </summary> /// <typeparam name="TAttribute">Type of attribute.</typeparam> /// <param name="reader">Reader to process attributes of type <typeparamref name="TAttribute"/>.</param> /// <returns>Self (for fluency).</returns> public static AttributeMetadataReaderCollection Add <TAttribute>(this AttributeMetadataReaderCollection collection, IAttributeMetadataReader reader) where TAttribute : Attribute { Ensure.NotNull(collection, "collection"); return(collection.Add(typeof(TAttribute), reader)); }
/// <summary> /// Tries to get metadata reader for attribute of type <paramref name="attributeType"/>. /// </summary> /// <param name="attributeType">Type of attribute.</param> /// <param name="reader">Registered reader for attributes of type <paramref name="attributeType"/>.</param> /// <returns><c>true</c> if reader is registered; <c>false</c> otherwise.</returns> public bool TryGet(Type attributeType, out IAttributeMetadataReader reader) { Ensure.NotNull(attributeType, "attributeType"); return(values.TryGetValue(attributeType, out reader)); }