Mercurial > pub > bltoolkit
view Source/Reflection/Extension/AttributeExtension.cs @ 9:1e85f66cf767 default tip
update bltoolkit
author | nickolay |
---|---|
date | Thu, 05 Apr 2018 20:53:26 +0300 |
parents | f990fcb411a9 |
children |
line wrap: on
line source
using System; namespace BLToolkit.Reflection.Extension { public class AttributeExtension { public AttributeExtension() { Values = new ValueCollection(); } private AttributeExtension(ValueCollection values) { Values = values; } public string Name { get; set; } public ValueCollection Values { get; private set; } public object Value { get { return this == _null? null: Values.Value; } } public object this[string valueName] { get { return this == _null? null: Values[valueName]; } } public object this[string valueName, object defaultValue] { get { return this[valueName] ?? defaultValue; } } private AttributeNameCollection _attributes; public AttributeNameCollection Attributes { get { return _attributes ?? (_attributes = new AttributeNameCollection()); } } private static readonly AttributeExtension _null = new AttributeExtension(ValueCollection.Null); public static AttributeExtension Null { get { return _null; } } } }