diff --git a/ser/XmlFormatter2.cs b/ser/XmlFormatter2.cs index 702c590..f57bc61 100644 --- a/ser/XmlFormatter2.cs +++ b/ser/XmlFormatter2.cs @@ -102,6 +102,8 @@ namespace lib public Dictionary> WLFields= new(); public Dictionary TypeProxy = new(); + + public Types TypesDefault = Types.Fields; } public class XmlFormatter2: IFormatter @@ -436,7 +438,7 @@ namespace lib bool filterFields, filterProps, doImpls, doFields, doProps; HashSet whitelistFields, whitelistProps; - GetFilters( mi, finalType, out filterFields, out filterProps, out doImpls, out doFields, out doProps, out whitelistFields, out whitelistProps ); + GetFilters( m_cfg.TypesDefault, mi, finalType, out filterFields, out filterProps, out doImpls, out doFields, out doProps, out whitelistFields, out whitelistProps ); /* List members = new(); @@ -922,7 +924,7 @@ namespace lib { bool filterFields, filterProps, doImpls, doFields, doProps; HashSet whitelistFields, whitelistProps; - GetFilters( mi, type, out filterFields, out filterProps, out doImpls, out doFields, out doProps, out whitelistFields, out whitelistProps ); + GetFilters( m_cfg.TypesDefault, mi, type, out filterFields, out filterProps, out doImpls, out doFields, out doProps, out whitelistFields, out whitelistProps ); if( doFields || doImpls ) { @@ -976,7 +978,7 @@ namespace lib } } - private static void GetFilters( MemberInfo mi, Type type, out bool filterFields, out bool filterProps, out bool doImpls, out bool doFields, out bool doProps, out HashSet whitelistFields, out HashSet whitelistProps ) + private static void GetFilters( Types TypesDefault, MemberInfo mi, Type type, out bool filterFields, out bool filterProps, out bool doImpls, out bool doFields, out bool doProps, out HashSet whitelistFields, out HashSet whitelistProps ) { var custWLFields = mi?.GetCustomAttribute(); var custWLProps = mi?.GetCustomAttribute(); @@ -984,7 +986,7 @@ namespace lib filterFields = custWLFields != null; filterProps = custWLProps != null; - var typesTodo = type.GetCustomAttribute()?.Types ?? Types.None; + var typesTodo = type.GetCustomAttribute()?.Types ?? TypesDefault; doImpls = typesTodo.HasFlag( Types.Implied ); doFields = filterFields || typesTodo.HasFlag( Types.Fields );