Esempio n. 1
0
 public TypeSpec CreateFromType(ITypeResolver typeResolver, Type type)
 {
     Type[] typeArgs;
     if (!type.TryExtractTypeArguments(typeof(IDictionary<,>), out typeArgs))
         return null;
     var keyType = typeArgs[0];
     var valueType = typeArgs[1];
     return new DictionaryTypeSpec(typeResolver,
                                   type,
                                   () => typeResolver.FromType(keyType),
                                   () => typeResolver.FromType(valueType));
 }
Esempio n. 2
0
            public TypeSpec CreateFromType(ITypeResolver typeResolver, Type type)
            {
                Type[] typeArgs;
                if (!type.TryExtractTypeArguments(typeof(IDictionary <,>), out typeArgs))
                {
                    return(null);
                }
                var keyType   = typeArgs[0];
                var valueType = typeArgs[1];

                return(new DictionaryTypeSpec(typeResolver,
                                              type,
                                              () => typeResolver.FromType(keyType),
                                              () => typeResolver.FromType(valueType)));
            }
Esempio n. 3
0
 private static Func <IEnumerable <TypeSpec> > GetGenericArguments(ITypeResolver typeResolver)
 {
     if (typeResolver == null)
     {
         throw new ArgumentNullException(nameof(typeResolver));
     }
     return(() => new[] { typeResolver.FromType(typeof(T)) });
 }
Esempio n. 4
0
 public static TypeSpec FromType <T>(this ITypeResolver typeResolver)
 {
     if (typeResolver == null)
     {
         throw new ArgumentNullException(nameof(typeResolver));
     }
     return(typeResolver.FromType(typeof(T)));
 }
Esempio n. 5
0
            public TypeSpec CreateFromType(ITypeResolver typeResolver, Type type)
            {
                if (typeResolver == null)
                    throw new ArgumentNullException(nameof(typeResolver));
                if (type == null)
                    throw new ArgumentNullException(nameof(type));

                Type itemTypeLocal;
                if (type == typeof(string) || !type.TryGetEnumerableElementType(out itemTypeLocal))
                    return null;

                return new EnumerableTypeSpec(typeResolver, type,
                                              CreateLazy(() => typeResolver.FromType(itemTypeLocal)));
            }
Esempio n. 6
0
            public TypeSpec CreateFromType(ITypeResolver typeResolver, Type type)
            {
                if (typeResolver == null)
                {
                    throw new ArgumentNullException(nameof(typeResolver));
                }
                if (type == null)
                {
                    throw new ArgumentNullException(nameof(type));
                }

                Type itemTypeLocal;

                if (type == typeof(string) || !type.TryGetEnumerableElementType(out itemTypeLocal))
                {
                    return(null);
                }

                return(new EnumerableTypeSpec(typeResolver, type,
                                              CreateLazy(() => typeResolver.FromType(itemTypeLocal))));
            }
Esempio n. 7
0
            public TypeSpec CreateFromType(ITypeResolver typeResolver, Type type)
            {
                if (typeof(IClientResource).IsAssignableFrom(type) && type != typeof(IClientResource))
                {
                    var interfaceType = GetResourceNonProxyInterfaceType(type);
                    if (interfaceType == type)
                         return new ClientType(interfaceType, typeResolver);
                    return typeResolver.FromType(interfaceType);
                }

                return null;
            }