public static TypeInfo Create(System.Type target, DesirializeInstancePredication desirializeInstance, SerializeInstancePredication serializeInstance, ISerializationKeyTypeGetter keyTypeGetter)
            {
                Assert.IsNotNull(target);
                Assert.IsNotNull(desirializeInstance);

                return(new TypeInfo()
                {
                    Target = target,
                    DesirializeInstance = desirializeInstance,
                    SerializeInstance = serializeInstance,
                    KeyTypeGetter = keyTypeGetter,
                });
            }
 public static TypeInfo Create <T>(DesirializeInstancePredication desirializeInstance, SerializeInstancePredication serializeInstance, ISerializationKeyTypeGetter keyTypeGetter)
 => Create(typeof(T), desirializeInstance, serializeInstance, keyTypeGetter);