public ComplexGraphType <TModel> BuildGraphType(GraphTypeCache cache, IServiceCollection services) { var graphType = CreateGraphTypeCore(cache, services); graphType.Name = GraphTypeName; graphType.Description = typeof(TModel).GetCustomAttribute <DescriptionAttribute>()?.Description; if (!cache.TryPrime(graphType)) { return(cache.GetOrCreate <TModel> (services)); } foreach (var prop in typeof(TModel).GetProperties().Where(x => !_config.IsPropertyIgnored(x))) { var fieldConfig = _config.GetFieldConfig(prop); fieldConfig.ConfigureField(graphType, cache, services); } if (graphType is ObjectGraphType <TModel> objectGraphType) { foreach (var iFace in _config.Interfaces) { objectGraphType.AddResolvedInterface((IInterfaceGraphType)cache.GetOrCreate(iFace, services)); } } return(graphType); }