Object/Field Metadata
Any IGraphType
, IFieldType
, Directive
, ISchema
and some other classes implement the IProvideMetadata
interface. This allows you to add arbitrary information to those objects. This can be useful in combination with a validation rule or field middleware.
public interface IProvideMetadata { Dictionary<string, object> Metadata { get; } TType GetMetadata<TType>(string key, TType defaultValue = default); TType GetMetadata<TType>(string key, Func<TType> defaultValueFactory); bool HasMetadata(string key); }
public class MyGraphType : ObjectGraphType { public MyGraphType() { Metadata["rule"] = "value"; } }