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()); }