/// <summary> /// Create a new empty ManualTypeDescriberBuilder with the given fallback behavior, and a fallback ITypeDescriber of TypeDescribers.Default. /// </summary> public static ManualTypeDescriberBuilder CreateBuilder(ManualTypeDescriberFallbackBehavior fallbackBehavior) { if (!Enum.IsDefined(Types.ManualTypeDescriberFallbackBehavior, fallbackBehavior)) { Throw.ArgumentException($"Unexpected value: {fallbackBehavior}", nameof(fallbackBehavior)); } return(CreateBuilder(fallbackBehavior, TypeDescribers.Default)); }
private ManualTypeDescriberBuilder(ManualTypeDescriberFallbackBehavior behavior, ITypeDescriber fallback) { FallbackBehavior = behavior; FallbackTypeDescriber = fallback; Builders = ImmutableDictionary.CreateBuilder <TypeInfo, InstanceProvider>(); Serializers = new Dictionary <TypeInfo, ImmutableArray <SerializableMember> .Builder>(); Deserializers = new Dictionary <TypeInfo, ImmutableArray <DeserializableMember> .Builder>(); }
/// <summary> /// Create a new empty ManualTypeDescriberBuilder with the given fallback behavior. /// </summary> public static ManualTypeDescriberBuilder CreateBuilder(ManualTypeDescriberFallbackBehavior fallbackBehavior, ITypeDescriber fallbackTypeDescriber) { if (!Enum.IsDefined(Types.ManualTypeDescriberFallbackBehavior, fallbackBehavior)) { Throw.ArgumentException($"Unexpected value: {fallbackBehavior}", nameof(fallbackBehavior)); } Utils.CheckArgumentNull(fallbackTypeDescriber, nameof(fallbackTypeDescriber)); return(new ManualTypeDescriberBuilder(fallbackBehavior, fallbackTypeDescriber)); }
// set fallback behavior /// <summary> /// Sets the behavior to fallback to when a method has no registrations to return. /// </summary> public ManualTypeDescriberBuilder WithFallbackBehavior(ManualTypeDescriberFallbackBehavior fallbackBehavior) { if (!Enum.IsDefined(Types.ManualTypeDescriberFallbackBehavior, fallbackBehavior)) { Throw.ArgumentException($"Unexpected value: {fallbackBehavior}", nameof(fallbackBehavior)); } FallbackBehavior = fallbackBehavior; return(this); }
/// <summary> /// Create a new empty ManualTypeDescriberBuilder with the given fallback behavior. /// </summary> public static ManualTypeDescriberBuilder CreateBuilder(ManualTypeDescriberFallbackBehavior fallbackBehavior, ITypeDescriber fallbackTypeDescriber) => ManualTypeDescriberBuilder.CreateBuilder(fallbackBehavior, fallbackTypeDescriber);