FieldInfoNotDefinedForType() static private method

ArgumentException with message like "Field '{0}.{1}' is not defined for type '{2}'"
static private FieldInfoNotDefinedForType ( object p0, object p1, object p2 ) : Exception
p0 object
p1 object
p2 object
return System.Exception
示例#1
0
        public static MemberExpression Field(Expression expression, FieldInfo field)
        {
            ContractUtils.RequiresNotNull(field, nameof(field));

            if (field.IsStatic)
            {
                if (expression != null)
                {
                    throw Error.OnlyStaticFieldsHaveNullInstance(nameof(expression));
                }
            }
            else
            {
                if (expression == null)
                {
                    throw Error.OnlyStaticFieldsHaveNullInstance(nameof(field));
                }
                RequiresCanRead(expression, nameof(expression));
                if (!TypeUtils.AreReferenceAssignable(field.DeclaringType, expression.Type))
                {
                    throw Error.FieldInfoNotDefinedForType(field.DeclaringType, field.Name, expression.Type);
                }
            }
            return(MemberExpression.Make(expression, field));
        }
示例#2
0
        /// <summary>
        /// Creates a <see cref="MemberExpression"/> accessing a field.
        /// </summary>
        /// <param name="expression">The containing object of the field.  This can be null for static fields.</param>
        /// <param name="field">The field to be accessed.</param>
        /// <returns>The created <see cref="MemberExpression"/>.</returns>
        public static MemberExpression Field(Expression expression, FieldInfo field)
        {
            ContractUtils.RequiresNotNull(field, "field");

            if (field.IsStatic)
            {
                if (expression != null)
                {
                    throw new ArgumentException(Strings.OnlyStaticFieldsHaveNullInstance, "expression");
                }
            }
            else
            {
                if (expression == null)
                {
                    throw new ArgumentException(Strings.OnlyStaticFieldsHaveNullInstance, "field");
                }

                RequiresCanRead(expression, "expression");
                if (!TypeHelper.AreReferenceAssignable(field.DeclaringType, expression.Type))
                {
                    throw Error.FieldInfoNotDefinedForType(field.DeclaringType, field.Name, expression.Type);
                }
            }
            return(MemberExpression.Make(expression, field));
        }
        public static ConditionalMemberCSharpExpression ConditionalField(Expression expression, FieldInfo field)
        {
            RequiresCanRead(expression, nameof(expression));
            ContractUtils.RequiresNotNull(field, nameof(field));

            if (field.IsStatic)
            {
                throw Error.ConditionalAccessRequiresNonStaticMember();
            }

            var type = expression.Type.GetNonNullReceiverType();

            if (!TypeUtils1.AreReferenceAssignable(field.DeclaringType, type))
            {
                throw LinqError.FieldInfoNotDefinedForType(field.DeclaringType, field.Name, type);
            }

            return(ConditionalMemberCSharpExpression.Make(expression, field));
        }