コード例 #1
0
        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()}");
            }
        }
コード例 #2
0
    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()));
    }