public static IDeserializer GetDeserializer(string filePath = null)
        {
            // if (_desrializer != null) {
            //     return _desrializer;
            // }
            var builder = new DeserializerBuilder();

            builder = builder
                      .IgnoreFields()
                      .IgnoreUnmatchedProperties()
                      .WithNamingConvention(CamelCaseNamingConvention.Instance);
            if (RegisteredTags?.Count > 0)
            {
                foreach (var t in RegisteredTags)
                {
                    var type   = t.GetType();
                    var tagKey = type.GetCustomAttributes(typeof(YamlTagAttribute), true)
                                 .FirstOrDefault() is YamlTagAttribute att
                        ? att.TagName
                        : null;

                    builder = builder.WithTagMapping($"!{tagKey}", type);
                }

                builder = builder
                          .WithTypeConverter(
                    new FileTypeConverter(RegisteredTags, filePath),
                    s => s.OnTop());
            }

            // _desrializer = builder.Build();
            // return _desrializer;
            return(builder.Build());
        }