internal static MemberInfo Create(System.Reflection.MemberInfo memberInfo, TypeInfoProvider typeInfoProvider) { switch (memberInfo.GetMemberType()) { case MemberTypes.Field: return(new FieldInfo((System.Reflection.FieldInfo)memberInfo, typeInfoProvider)); case MemberTypes.Constructor: return(new ConstructorInfo((System.Reflection.ConstructorInfo)memberInfo, typeInfoProvider)); case MemberTypes.Property: return(new PropertyInfo((System.Reflection.PropertyInfo)memberInfo, typeInfoProvider)); case MemberTypes.Method: return(new MethodInfo((System.Reflection.MethodInfo)memberInfo, typeInfoProvider)); default: throw new Exception($"Not supported member type: {memberInfo.GetMemberType()}"); } }
public override ISqlExpression GetExpression(System.Reflection.MemberInfo member, params ISqlExpression[] args) { if (args == null) { throw new ArgumentNullException("args"); } if (args.Length == 0) { throw new ArgumentException( "The args array must have at least one member (that is a stored function name)."); } if (!(args[0] is SqlValue)) { throw new ArgumentException("First element of the 'args' argument must be of SqlValue type."); } return(new SqlFunction( member.GetMemberType(), ((SqlValue)args[0]).Value.ToString(), args.Skip(1).ToArray())); }