Mercurial > pub > bltoolkit
diff Source/TypeBuilder/GlobalInstanceTypeAttribute.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/TypeBuilder/GlobalInstanceTypeAttribute.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,78 @@ +using System; +using System.Diagnostics.CodeAnalysis; + +namespace BLToolkit.TypeBuilder +{ + [SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")] + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = true)] + public class GlobalInstanceTypeAttribute : InstanceTypeAttribute + { + public GlobalInstanceTypeAttribute(Type propertyType, Type instanceType) + : base(instanceType) + { + _propertyType = propertyType; + } + + public GlobalInstanceTypeAttribute(Type propertyType, Type instanceType, object parameter1) + : base(instanceType, parameter1) + { + _propertyType = propertyType; + } + + public GlobalInstanceTypeAttribute(Type propertyType, Type instanceType, + object parameter1, + object parameter2) + : base(instanceType, parameter1, parameter2) + { + _propertyType = propertyType; + } + + public GlobalInstanceTypeAttribute(Type propertyType, Type instanceType, + object parameter1, + object parameter2, + object parameter3) + : base(instanceType, parameter1, parameter2, parameter3) + { + _propertyType = propertyType; + } + + public GlobalInstanceTypeAttribute(Type propertyType, Type instanceType, + object parameter1, + object parameter2, + object parameter3, + object parameter4) + : base(instanceType, parameter1, parameter2, parameter3, parameter4) + { + _propertyType = propertyType; + } + + public GlobalInstanceTypeAttribute(Type propertyType, Type instanceType, + object parameter1, + object parameter2, + object parameter3, + object parameter4, + object parameter5) + : base(instanceType, parameter1, parameter2, parameter3, parameter4, parameter5) + { + _propertyType = propertyType; + } + + private readonly Type _propertyType; + public Type PropertyType + { + get { return _propertyType; } + } + + private Builders.IAbstractTypeBuilder _typeBuilder; + public override Builders.IAbstractTypeBuilder TypeBuilder + { + get + { + if (_typeBuilder == null) + _typeBuilder = new Builders.InstanceTypeBuilder(_propertyType, InstanceType, IsObjectHolder); + + return _typeBuilder; + } + } + } +}