System.DefaultBinder.CanConvertPrimitiveObjectToType C# (CSharp) Method

CanConvertPrimitiveObjectToType() private method

private CanConvertPrimitiveObjectToType ( Object source, RuntimeType type ) : bool
source Object
type RuntimeType
return bool
        static internal extern bool CanConvertPrimitiveObjectToType(Object source,RuntimeType type);
        

Usage Example

        public override FieldInfo BindToField(BindingFlags bindingAttr, FieldInfo[] match, object value, CultureInfo cultureInfo)
        {
            if (match == null)
            {
                throw new ArgumentNullException("match");
            }
            int num = 0;

            FieldInfo[] array = (FieldInfo[])match.Clone();
            if ((bindingAttr & BindingFlags.SetField) != BindingFlags.Default)
            {
                Type type = value.GetType();
                for (int i = 0; i < array.Length; i++)
                {
                    Type fieldType = array[i].FieldType;
                    if (fieldType == type)
                    {
                        array[num++] = array[i];
                    }
                    else if (value == Empty.Value && fieldType.IsClass)
                    {
                        array[num++] = array[i];
                    }
                    else if (fieldType == typeof(object))
                    {
                        array[num++] = array[i];
                    }
                    else if (fieldType.IsPrimitive)
                    {
                        if (DefaultBinder.CanConvertPrimitiveObjectToType(value, (RuntimeType)fieldType))
                        {
                            array[num++] = array[i];
                        }
                    }
                    else if (fieldType.IsAssignableFrom(type))
                    {
                        array[num++] = array[i];
                    }
                }
                if (num == 0)
                {
                    throw new MissingFieldException(Environment.GetResourceString("MissingField"));
                }
                if (num == 1)
                {
                    return(array[0]);
                }
            }
            int  num2 = 0;
            bool flag = false;

            for (int i = 1; i < num; i++)
            {
                int num3 = DefaultBinder.FindMostSpecificField(array[num2], array[i]);
                if (num3 == 0)
                {
                    flag = true;
                }
                else if (num3 == 2)
                {
                    num2 = i;
                    flag = false;
                }
            }
            if (flag)
            {
                throw new AmbiguousMatchException(Environment.GetResourceString("Arg_AmbiguousMatchException"));
            }
            return(array[num2]);
        }
All Usage Examples Of System.DefaultBinder::CanConvertPrimitiveObjectToType