Ejemplo n.º 1
0
        /// <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));
        }
Ejemplo n.º 2
0
        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>();
        }
Ejemplo n.º 3
0
        /// <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));
        }
Ejemplo n.º 4
0
        // 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);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Create a new empty ManualTypeDescriberBuilder with the given fallback behavior.
 /// </summary>
 public static ManualTypeDescriberBuilder CreateBuilder(ManualTypeDescriberFallbackBehavior fallbackBehavior, ITypeDescriber fallbackTypeDescriber)
 => ManualTypeDescriberBuilder.CreateBuilder(fallbackBehavior, fallbackTypeDescriber);