Mega Code Archive

 
Categories / C# / Reflection
 

Determine if a property exists in an object

#region License and Copyright /*  * Dotnet Commons Reflection   *  * Copyright  2005. EDWARD LIM  *  * This library is free software; you can redistribute it and/or modify it   * under the terms of the GNU Lesser General Public License as published by   * the Free Software Foundation; either version 2.1 of the License, or   * (at your option) any later version.  *  * This library is distributed in the hope that it will be useful, but   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY   * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License   * for more details.   *  * You should have received a copy of the GNU Lesser General Public License   * along with this library; if not, write to the   * Free Software Foundation, Inc.,   * 59 Temple Place,   * Suite 330,   * Boston,   * MA 02111-1307   * USA   *   */ #endregion using System; using System.Collections; using System.Collections.Specialized; using System.Reflection; //using Dotnet.Commons.Lang; namespace Dotnet.Commons.Reflection {   ///     /// <summary>   /// This class contains utility methods that perform operations on object properties.    /// </summary>   ///    /// <remarks>    ///  Copyright 2006 by Edward Lim.   /// All rights reserved.   /// </remarks>   ///    public sealed class PropertyUtils   {     private PropertyUtils()  {}     /// --------------------------------------------------------------------     /// <summary>     /// Determine if a property exists in an object     /// </summary>     /// <param name="propertyName">Name of the property </param>     /// <param name="srcObject">the object to inspect</param>     /// <returns>true if the property exists, false otherwise</returns>     /// <exception cref="ArgumentNullException">if srcObject is null</exception>     /// <exception cref="ArgumentException">if propertName is empty or null </exception>     /// --------------------------------------------------------------------     public static bool Exists(string propertyName, object srcObject)     {       if (srcObject == null)         throw new System.ArgumentNullException("srcObject");              if ((propertyName == null) || (propertyName == String.Empty) || (propertyName.Length == 0))         throw new System.ArgumentException("Property name cannot be empty or null.");       PropertyInfo propInfoSrcObj = srcObject.GetType().GetProperty(propertyName);       return (propInfoSrcObj != null);     }     /// --------------------------------------------------------------------     /// <summary>     /// Determine if a property exists in an object     /// </summary>     /// <param name="propertyName">Name of the property </param>     /// <param name="srcObject">the object to inspect</param>     /// <param name="ignoreCase">ignore case sensitivity</param>     /// <returns>true if the property exists, false otherwise</returns>     /// <exception cref="ArgumentNullException">if srcObject is null</exception>     /// <exception cref="ArgumentException">if propertName is empty or null </exception>     /// --------------------------------------------------------------------     public static bool Exists(string propertyName, object srcObject, bool ignoreCase)     {             if (!ignoreCase)         return Exists(propertyName, srcObject);       if (srcObject == null)         throw new System.ArgumentNullException("srcObject");              if ((propertyName == null) || (propertyName == String.Empty) || (propertyName.Length == 0))         throw new System.ArgumentException("Property name cannot be empty or null.");       PropertyInfo [] propertyInfos = srcObject.GetType().GetProperties();       propertyName = propertyName.ToLower();       foreach(PropertyInfo propInfo in propertyInfos)       {         if (propInfo.Name.ToLower().Equals(propertyName))           return true;       }       return false;     }     } }