示例#1
0
        public bool TryGetFormatterForType(Type type, out ITypeFormatter formatter)
        {
            formatter = _factory(type);

            // return formatter != null;

            if (formatter != null)
            {
                return(true);
            }

            if (Formatters.TryGetValue(type, out formatter))
            {
                return(true);
            }

            if (type.IsGenericType &&
                FormatterFactories.TryGetValue(
                    type.GetGenericTypeDefinition(),
                    out var factory))
            {
                formatter        = factory(type);
                Formatters[type] = formatter;
                return(true);
            }

            return(false);
        }
示例#2
0
 internal void Clear() => FormatterFactories.Clear();