|
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="AttributeHelper.cs" company="Catel development team">
// Copyright (c) 2008 - 2011 Catel development team. All rights reserved.
// </copyright>
// <summary>
// Attribute helper class.
// </summary>
// --------------------------------------------------------------------------------------------------------------------
using System;
using System.Reflection;
namespace Catel
{
/// <summary>
/// Attribute helper class.
/// </summary>
internal static class AttributeHelper
{
/// <summary>
/// Tries to the get attribute.
/// </summary>
/// <typeparam name="U">The attribute type.</typeparam>
/// <param name="propertyInfo">The property info.</param>
/// <param name="attribute">The attribute.</param>
/// <returns>
/// <c>true</c> if the attribute is retrieved successfully; otherwise <c>false</c>.
/// </returns>
public static bool TryGetAttribute<U>(PropertyInfo propertyInfo, out U attribute) where U : Attribute
{
if (propertyInfo == null)
{
throw new ArgumentNullException("propertyInfo");
}
attribute = null;
U[] attributes = propertyInfo.GetCustomAttributes(typeof(U), false) as U[];
if ((attributes != null) && (attributes.Length > 0))
{
attribute = attributes[0];
return true;
}
return false;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.