internal static MemberInfo AsMemberInfo(this IMemberInfo info) { if (info is PropertyInfoWrapper) { return(((PropertyInfoWrapper)info).Inner); } else if (info is MethodInfoWrapper) { return(((MethodInfoWrapper)info).Inner); } else if (info is FieldInfoWrapper) { return(((FieldInfoWrapper)info).Inner); } else { throw new NotSupportedException(string.Format("Cannot handle '{0}'.", info.GetType())); } }