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.