GetClrTypeFullName() статический приватный Метод

static private GetClrTypeFullName ( Type type ) : string
type System.Type
Результат string
Пример #1
0
 private static bool IsValidCallback(MethodInfo method, ParameterInfo[] parameters, Type attributeType, MethodInfo currentCallback, ref Type prevAttributeType)
 {
     if (!method.IsDefined(attributeType, false))
     {
         return(false);
     }
     if (currentCallback != null)
     {
         throw new JsonException("Invalid attribute. Both '{0}' and '{1}' in type '{2}' have '{3}'.".FormatWith(CultureInfo.InvariantCulture, new object[]
         {
             method,
             currentCallback,
             DefaultContractResolver.GetClrTypeFullName(method.DeclaringType),
             attributeType
         }));
     }
     if (prevAttributeType != null)
     {
         throw new JsonException("Invalid Callback. Method '{3}' in type '{2}' has both '{0}' and '{1}'.".FormatWith(CultureInfo.InvariantCulture, new object[]
         {
             prevAttributeType,
             attributeType,
             DefaultContractResolver.GetClrTypeFullName(method.DeclaringType),
             method
         }));
     }
     if (method.IsVirtual)
     {
         throw new JsonException("Virtual Method '{0}' of type '{1}' cannot be marked with '{2}' attribute.".FormatWith(CultureInfo.InvariantCulture, method, DefaultContractResolver.GetClrTypeFullName(method.DeclaringType), attributeType));
     }
     if (method.ReturnType != typeof(void))
     {
         throw new JsonException("Serialization Callback '{1}' in type '{0}' must return void.".FormatWith(CultureInfo.InvariantCulture, DefaultContractResolver.GetClrTypeFullName(method.DeclaringType), method));
     }
     if (attributeType == typeof(OnErrorAttribute))
     {
         if (parameters == null || parameters.Length != 2 || parameters[0].ParameterType != typeof(StreamingContext) || parameters[1].ParameterType != typeof(ErrorContext))
         {
             throw new JsonException("Serialization Error Callback '{1}' in type '{0}' must have two parameters of type '{2}' and '{3}'.".FormatWith(CultureInfo.InvariantCulture, new object[]
             {
                 DefaultContractResolver.GetClrTypeFullName(method.DeclaringType),
                 method,
                 typeof(StreamingContext),
                 typeof(ErrorContext)
             }));
         }
     }
     else if (parameters == null || parameters.Length != 1 || parameters[0].ParameterType != typeof(StreamingContext))
     {
         throw new JsonException("Serialization Callback '{1}' in type '{0}' must have a single parameter of type '{2}'.".FormatWith(CultureInfo.InvariantCulture, DefaultContractResolver.GetClrTypeFullName(method.DeclaringType), method, typeof(StreamingContext)));
     }
     prevAttributeType = attributeType;
     return(true);
 }
Пример #2
0
        private MemberInfo GetExtensionDataMemberForType(Type type)
        {
            IEnumerable <MemberInfo> source = this.GetClassHierarchyForType(type).SelectMany(delegate(Type baseType)
            {
                IList <MemberInfo> list = new List <MemberInfo>();
                list.AddRange(baseType.GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic));
                list.AddRange(baseType.GetFields(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic));
                return(list);
            });

            return(source.LastOrDefault(delegate(MemberInfo m)
            {
                MemberTypes memberTypes = m.MemberType();
                if (memberTypes != MemberTypes.Property && memberTypes != MemberTypes.Field)
                {
                    return false;
                }
                if (!m.IsDefined(typeof(JsonExtensionDataAttribute), false))
                {
                    return false;
                }
                Type memberUnderlyingType = ReflectionUtils.GetMemberUnderlyingType(m);
                Type type2;
                if (ReflectionUtils.ImplementsGenericDefinition(memberUnderlyingType, typeof(IDictionary <, >), out type2))
                {
                    Type type3 = type2.GetGenericArguments()[0];
                    Type type4 = type2.GetGenericArguments()[1];
                    if (type3.IsAssignableFrom(typeof(string)) && type4.IsAssignableFrom(typeof(JToken)))
                    {
                        return true;
                    }
                }
                throw new JsonException("Invalid extension data attribute on '{0}'. Member '{1}' type must implement IDictionary<string, JToken>.".FormatWith(CultureInfo.InvariantCulture, DefaultContractResolver.GetClrTypeFullName(m.DeclaringType), m.Name));
            }));
        }