Gets the member's value on the object.
#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 { /// <summary> /// Gets the member's value on the object. /// </summary> /// <param name="member">The member.</param> /// <param name="target">The target object.</param> /// <returns>The member's value on the object.</returns> public static object GetMemberValue(MemberInfo member, object target) { switch (member.MemberType) { case MemberTypes.Field: return ((FieldInfo)member).GetValue(target); case MemberTypes.Property: try { return ((PropertyInfo)member).GetValue(target, null); } catch (TargetParameterCountException e) { throw new ArgumentException("MemberInfo has index parameters", "member", e); } default: throw new ArgumentException("MemberInfo is not of type FieldInfo or PropertyInfo", "member"); } } } }