private void CompleteInterfaces( ITypeInitializationContext context) { if (ClrType != typeof(object)) { Type[] possibleInterfaceTypes = ClrType.GetInterfaces(); for (int i = 0; i < possibleInterfaceTypes.Length; i++) { InterfaceType type = context.GetType <InterfaceType>( new TypeReference( possibleInterfaceTypes[i], TypeContext.Output)); if (type != null) { _interfaceMap[type.Name] = type; } } } foreach (InterfaceType interfaceType in _interfaces .Select(t => context.GetType <InterfaceType>(t)) .Where(t => t != null)) { if (!_interfaceMap.ContainsKey(interfaceType.Name)) { _interfaceMap[interfaceType.Name] = interfaceType; } } }
public static T ResolveFieldType <T>( this ITypeInitializationContext context, IField field, TypeReference typeReference) where T : IType { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (field == null) { throw new ArgumentNullException(nameof(field)); } T type = default(T); if (typeReference != null) { type = context.GetType <T>(typeReference); } if (ReferenceEquals(type, default(T))) { context.ReportError(new SchemaError( $"The type `{typeReference}` of field " + $"`{field.DeclaringType.Name}.{field.Name}` " + "could not be resolved to a valid schema type.", field.DeclaringType)); } return(type); }
public static T ResolveFieldType <T>( this ITypeInitializationContext context, IField field, TypeReference typeReference) where T : IType { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (field == null) { throw new ArgumentNullException(nameof(field)); } T type = default(T); if (typeReference != null) { type = context.GetType <T>(typeReference); } if (ReferenceEquals(type, default(T))) { context.ReportError(new SchemaError( TypeResources.Field_Cannot_ResolveType( field.DeclaringType.Name, field.Name, typeReference), field.DeclaringType)); } return(type); }
protected virtual ISet <ObjectType> CreateUnionTypeSet( ITypeInitializationContext context) { return(new HashSet <ObjectType>(_types .Select(t => context.GetType <ObjectType>(t)) .Where(t => t != null))); }
protected override void OnCompleteType( ITypeInitializationContext context) { EdgeType = context.GetType <EdgeType <T> >( new TypeReference(typeof(EdgeType <T>))); base.OnCompleteType(context); }
private void CompleteInterfaces( ITypeInitializationContext context) { if (_interfaces != null) { foreach (InterfaceType interfaceType in _interfaces .Select(t => context.GetType <InterfaceType>(t)) .Where(t => t != null)) { _interfaceMap[interfaceType.Name] = interfaceType; } } }
private void CompleteTypes( ITypeInitializationContext context) { if (_types != null) { foreach (ObjectType memberType in _types .Select(t => context.GetType <ObjectType>(t)) .Where(t => t != null)) { _typeMap[memberType.Name] = memberType; } } if (_typeMap.Count == 0) { context.ReportError(new SchemaError( "A Union type must define one or more unique member types.", this)); } }