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)); }
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))); }
private static Func <IEnumerable <TypeSpec> > GetGenericArguments(ITypeResolver typeResolver) { if (typeResolver == null) { throw new ArgumentNullException(nameof(typeResolver)); } return(() => new[] { typeResolver.FromType(typeof(T)) }); }
public static TypeSpec FromType <T>(this ITypeResolver typeResolver) { if (typeResolver == null) { throw new ArgumentNullException(nameof(typeResolver)); } return(typeResolver.FromType(typeof(T))); }
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))); }
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)))); }
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; }