Class AttributeCache
A thread-safe cache of attributes belonging to a given key (MemberInfo or Type).
The Retrieve method is the most useful one in this class as it calls the retrieval process if the type is not contained in the cache.
Inherited Members
Namespace: Swan.Reflection
Syntax
public class AttributeCache
Constructors
AttributeCache(PropertyTypeCache)
Initializes a new instance of the AttributeCache class.
Declaration
public AttributeCache(PropertyTypeCache propertyCache = null)
Parameters
Type | Name | Description |
---|---|---|
PropertyTypeCache | propertyCache | The property cache object. |
Properties
DefaultCache
Gets the default cache.
Declaration
public static Lazy<AttributeCache> DefaultCache { get; }
Property Value
Type | Description |
---|---|
Lazy<AttributeCache> | The default cache. |
PropertyTypeCache
A PropertyTypeCache object for caching properties and their attributes.
Declaration
public PropertyTypeCache PropertyTypeCache { get; }
Property Value
Type | Description |
---|---|
PropertyTypeCache |
Methods
Contains<T>(MemberInfo)
Determines whether [contains] [the specified member].
Declaration
public bool Contains<T>(MemberInfo member)
Parameters
Type | Name | Description |
---|---|---|
MemberInfo | member | The member. |
Returns
Type | Description |
---|---|
Boolean |
|
Type Parameters
Name | Description |
---|---|
T | The type of the attribute to be retrieved. |
Retrieve(MemberInfo, Type, Boolean)
Gets all attributes of a specific type from a member.
Declaration
public IEnumerable<object> Retrieve(MemberInfo member, Type type, bool inherit = false)
Parameters
Type | Name | Description |
---|---|---|
MemberInfo | member | The member. |
Type | type | The attribute type. |
Boolean | inherit |
|
Returns
Type | Description |
---|---|
IEnumerable<Object> | An array of the attributes stored for the specified type. |
Retrieve<T>(MemberInfo, Boolean)
Gets specific attributes from a member constrained to an attribute.
Declaration
public IEnumerable<object> Retrieve<T>(MemberInfo member, bool inherit = false)
where T : Attribute
Parameters
Type | Name | Description |
---|---|---|
MemberInfo | member | The member. |
Boolean | inherit |
|
Returns
Type | Description |
---|---|
IEnumerable<Object> | An array of the attributes stored for the specified type. |
Type Parameters
Name | Description |
---|---|
T | The type of the attribute to be retrieved. |
Retrieve<T>(Type, Boolean)
Gets all properties an their attributes of a given type constrained to only attributes.
Declaration
public Dictionary<PropertyInfo, IEnumerable<object>> Retrieve<T>(Type type, bool inherit = false)
where T : Attribute
Parameters
Type | Name | Description |
---|---|---|
Type | type | The type of the object. |
Boolean | inherit |
|
Returns
Type | Description |
---|---|
Dictionary<PropertyInfo, IEnumerable<Object>> | A dictionary of the properties and their attributes stored for the specified type. |
Type Parameters
Name | Description |
---|---|
T | The type of the attribute to retrieve. |
RetrieveFromType<T>(Type, Boolean)
Gets all properties and their attributes of a given type.
Declaration
public Dictionary<PropertyInfo, IEnumerable<object>> RetrieveFromType<T>(Type attributeType, bool inherit = false)
Parameters
Type | Name | Description |
---|---|---|
Type | attributeType | Type of the attribute. |
Boolean | inherit |
|
Returns
Type | Description |
---|---|
Dictionary<PropertyInfo, IEnumerable<Object>> | A dictionary of the properties and their attributes stored for the specified type. |
Type Parameters
Name | Description |
---|---|
T | The object type used to extract the properties from. |
RetrieveFromType<T, TAttribute>(Boolean)
Gets all properties and their attributes of a given type.
Declaration
public Dictionary<PropertyInfo, IEnumerable<object>> RetrieveFromType<T, TAttribute>(bool inherit = false)
Parameters
Type | Name | Description |
---|---|---|
Boolean | inherit |
|
Returns
Type | Description |
---|---|
Dictionary<PropertyInfo, IEnumerable<Object>> | A dictionary of the properties and their attributes stored for the specified type. |
Type Parameters
Name | Description |
---|---|
T | The object type used to extract the properties from. |
TAttribute | The type of the attribute. |
RetrieveOne<T>(MemberInfo, Boolean)
Gets one attribute of a specific type from a member.
Declaration
public T RetrieveOne<T>(MemberInfo member, bool inherit = false)
where T : Attribute
Parameters
Type | Name | Description |
---|---|---|
MemberInfo | member | The member. |
Boolean | inherit |
|
Returns
Type | Description |
---|---|
T | An attribute stored for the specified type. |
Type Parameters
Name | Description |
---|---|
T | The attribute type. |
RetrieveOne<TAttribute, T>(Boolean)
Gets one attribute of a specific type from a generic type.
Declaration
public TAttribute RetrieveOne<TAttribute, T>(bool inherit = false)
where TAttribute : Attribute
Parameters
Type | Name | Description |
---|---|---|
Boolean | inherit | if set to |
Returns
Type | Description |
---|---|
TAttribute | An attribute stored for the specified type. |
Type Parameters
Name | Description |
---|---|
TAttribute | The type of the attribute. |
T | The type to retrieve the attribute. |