#region License
// Copyright 2006 James Newton-King
// http://www.newtonsoft.com
//
// This work is licensed under the Creative Commons Attribution 2.5 License
// http://creativecommons.org/licenses/by/2.5/
//
// You are free:
// * to copy, distribute, display, and perform the work
// * to make derivative works
// * to make commercial use of the work
//
// Under the following conditions:
// * You must attribute the work in the manner specified by the author or licensor:
// - If you find this component useful a link to http://www.newtonsoft.com would be appreciated.
// * For any reuse or distribution, you must make clear to others the license terms of this work.
// * Any of these conditions can be waived if you get permission from the copyright holder.
#endregion
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Collections;
using System.ComponentModel;
namespace MySpace.Common.IO.JSON.Utilities
{
internal static class ReflectionUtils
{
public static bool HasDefaultConstructor(Type t)
{
if (t == null)
throw new ArgumentNullException("t");
return (t.GetConstructor(BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null) != null);
}
}
}
Change type
using System;
using System.ComponentModel;
public class Convertors
{
/// <summary>
/// See Convert.ChangeType.
/// </summary>
/// <typeparam name="T">New type, may be Nullable.</typeparam>
/// <param name="value">Object</param>
/// <returns>Typed object.</returns>
public static T ChangeType<T>(object value)
{
Type conversionType = typeof(T);
if (conversionType.IsGenericType && conversionType.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))
{
if (value == null)
{
return default(T);
}
else
{
NullableConverter nullableConverter = new NullableConverter(conversionType);
conversionType = nullableConverter.UnderlyingType;
}
}
return (T)Convert.ChangeType(value, conversionType);
}
}
The full name of the Array type
using System;
class TestFullName
{
public static void Main() {
Type t = typeof(Array);
Console.WriteLine("The full name of the Array type is {0}.", t.FullName);
}
}
Get Derivation from an object
[/csharp][/csharp][/csharp][/csharp][/csharp]
Get all methods from an object
[/csharp][/csharp][/csharp][/csharp][/csharp]
Makes a shallow copy of the object
[/csharp][/csharp][/csharp][/csharp][/csharp]
Makes a shallow copy of the object to a different class type (inherits from the original)
[/csharp][/csharp][/csharp][/csharp][/csharp]

