Unions
Unions are a composition of two or more different types. To create such union type,
you need to inherit from UnionGraphType and call the Type<TType> method on
the all types that you want to include in this union.
public class CatOrDog : UnionGraphType
{
public CatOrDog()
{
Type<Cat>();
Type<Dog>();
}
}
public class Cat : ObjectGraphType<CatModel>
{
public Cat()
{
Field<StringGraphType>("name");
Field<BooleanGraphType>("meows");
}
}
public class Dog : ObjectGraphType<DogModel>
{
public Dog()
{
Field<StringGraphType>("name");
Field<BooleanGraphType>("barks");
}
}In this example CatOrDog type should implement ResolveType or both Cat and
Dog types should implement IsTypeOf. Note that IsTypeOf is already implemented
for ObjectGraphType<TSourceType> so in this example ResolveType is not used.
For details about IsTypeOf and ResolveType see Interfaces.