На примере из graphql-dotnet:
public class Droid
{
public string Id { get; set; }
public string Name { get; set; }
}
public class Query
{
[GraphQLMetadata("hero")]
public Droid GetHero()
{
return new Droid { Id = "123", Name = "R2-D2" };
}
}
var schema = Schema.For(@"
interface Node {
id: String
}
type Droid implements Node {
id: String
name: String
}
type Query {
hero: Node
}
", _ => {
_.Types.Include<Query>();
});
var result = schema.Execute(_ =>
{
_.Query = "{ hero { id ... on Droid { name } } }";
});
Мне нужно определить метод ResolveType для интерфейса Node. Я нашел такой способ:
_.Types.For("Node").ResolveType = obj => { /* needs to return an ObjectGraphType object here */ };
ResolveType получает на вход объект Droid, но ему нужен объект ObjectGraphType! В NodeJS я мог просто вернуть разрешенный тип как строку типа «Droid».
Можно ли обойтись без определения новых классов, унаследованных от ObjectGraphType?





Решение обсуждается здесь: https://github.com/graphql-dotnet/graphql-dotnet/issues/593