File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1212
1313namespace MUnique . OpenMU . Persistence . EntityFramework . Model ;
1414
15+ using MUnique . OpenMU . AttributeSystem ;
1516using MUnique . OpenMU . Persistence ;
1617using Mapster ;
1718
@@ -34,6 +35,15 @@ public static void EnsureConfigured()
3435
3536 Mapster . TypeAdapterConfig . GlobalSettings . Default . PreserveReference ( true ) ;
3637 Mapster . TypeAdapterConfig . GlobalSettings . Default . IgnoreMember ( ( member , side ) => member . Name . StartsWith ( "Raw" ) ) ;
38+ Mapster . TypeAdapterConfig . GlobalSettings . Default . IgnoreMember (
39+ ( member , side ) =>
40+ {
41+ static bool ContainsIElement ( Type t ) =>
42+ typeof ( IElement ) . IsAssignableFrom ( t )
43+ || ( t . IsArray && t . GetElementType ( ) is { } et && ContainsIElement ( et ) )
44+ || ( t . IsGenericType && t . GetGenericArguments ( ) . Any ( ContainsIElement ) ) ;
45+ return ContainsIElement ( member . Type ) ;
46+ } ) ;
3747
3848 Mapster . TypeAdapterConfig . GlobalSettings . NewConfig < MUnique . OpenMU . DataModel . Statistics . MiniGameRankingEntry , MUnique . OpenMU . DataModel . Statistics . MiniGameRankingEntry > ( )
3949 . Include < MiniGameRankingEntry , BasicModel . MiniGameRankingEntry > ( ) ;
Original file line number Diff line number Diff line change @@ -193,6 +193,7 @@ private string GenerateMapsterConfigurator()
193193
194194namespace MUnique.OpenMU.Persistence.EntityFramework.Model;
195195
196+ using MUnique.OpenMU.AttributeSystem;
196197using MUnique.OpenMU.Persistence;
197198using Mapster;
198199
@@ -215,6 +216,15 @@ public static void EnsureConfigured()
215216
216217 Mapster.TypeAdapterConfig.GlobalSettings.Default.PreserveReference(true);
217218 Mapster.TypeAdapterConfig.GlobalSettings.Default.IgnoreMember((member, side) => member.Name.StartsWith(""Raw""));
219+ Mapster.TypeAdapterConfig.GlobalSettings.Default.IgnoreMember(
220+ (member, side) =>
221+ {{
222+ static bool ContainsIElement(Type t) =>
223+ typeof(IElement).IsAssignableFrom(t)
224+ || (t.IsArray && t.GetElementType() is {{ }} et && ContainsIElement(et))
225+ || (t.IsGenericType && t.GetGenericArguments().Any(ContainsIElement));
226+ return ContainsIElement(member.Type);
227+ }});
218228
219229{ configs }
220230 isConfigured = true;
You can’t perform that action at this time.
0 commit comments