Mercurial > pub > bltoolkit
diff Source/Reflection/ObjectFactoryAttribute.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Source/Reflection/ObjectFactoryAttribute.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,27 @@ +using System; +using System.Diagnostics.CodeAnalysis; + +namespace BLToolkit.Reflection +{ + [SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")] + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)] + public class ObjectFactoryAttribute : Attribute + { + public ObjectFactoryAttribute(Type type) + { + if (type == null) throw new ArgumentNullException("type"); + + _objectFactory = Activator.CreateInstance(type) as IObjectFactory; + + if (_objectFactory == null) + throw new ArgumentException( + string.Format("Type '{0}' does not implement IObjectFactory interface.", type)); + } + + private readonly IObjectFactory _objectFactory; + public IObjectFactory ObjectFactory + { + get { return _objectFactory; } + } + } +}