Mercurial > silverbladetech
view Chronosv2/source/Extensions/TypeExtensions.cs @ 12:6a0449185449
SCC changed from TFS to HG
author | stevenh7776 stevenhollidge@hotmail.com |
---|---|
date | Tue, 21 Feb 2012 17:47:35 +0700 |
parents | 443821e55f06 |
children |
line wrap: on
line source
using System; using System.Reflection; namespace Chronos.Extensions { /// <summary> /// Extension methods for the reflection meta data type "Type" /// </summary> public static class TypeExtensions { #region · Extensions · /// <summary> /// Creates and returns an instance of the desired type /// </summary> /// <param name="type">The type to be instanciated.</param> /// <param name="constructorParameters">Optional constructor parameters</param> /// <returns>The instanciated object</returns> /// <example> /// <code> /// var type = Type.GetType(".NET full qualified class Type") /// var instance = type.CreateInstance(); /// </code> /// </example> public static object CreateInstance(this Type type, params object[] constructorParameters) { return CreateInstance<object>(type, constructorParameters); } /// <summary> /// Creates and returns an instance of the desired type casted to the generic parameter type T /// </summary> /// <typeparam name="T">The data type the instance is casted to.</typeparam> /// <param name="type">The type to be instanciated.</param> /// <param name="constructorParameters">Optional constructor parameters</param> /// <returns>The instanciated object</returns> /// <example> /// <code> /// var type = Type.GetType(".NET full qualified class Type") /// var instance = type.CreateInstance<IDataType>(); /// </code> /// </example> public static T CreateInstance<T>(this Type type, params object[] constructorParameters) { var instance = Activator.CreateInstance(type, constructorParameters); return (T)instance; } #endregion } }