Files
SPT-Server-Build/Libraries/FodyWeavers/JsonExtensionData.Fody/CecilExtensions.cs
T
clodanSPT cab8fa82a2 Json extension data fody (#340)
* Added a new Fody plugin to add to every model class the JsonExtensionData attribute

* retargeted fody plugin to netstandard for msbuild runtime

* Fixed runtime issue

* Fixed property check for new extension data properties

---------

Co-authored-by: Alex <clodanSPT@hotmail.com>
2025-06-02 12:15:44 +01:00

37 lines
950 B
C#

using System.Collections.Generic;
using System.Linq;
using Mono.Cecil;
namespace JsonExtensionData.Fody;
public static class CecilExtensions
{
public static List<TypeDefinition> GetAllClasses(this ModuleDefinition moduleDefinition)
{
var definitions = new List<TypeDefinition>();
//First is always module so we will skip that;
GetTypes(moduleDefinition.Types.Skip(1), definitions);
return definitions;
}
static void GetTypes(IEnumerable<TypeDefinition> typeDefinitions, List<TypeDefinition> definitions)
{
foreach (var typeDefinition in typeDefinitions)
{
GetTypes(typeDefinition.NestedTypes, definitions);
if (typeDefinition.IsInterface)
{
continue;
}
if (typeDefinition.IsEnum)
{
continue;
}
definitions.Add(typeDefinition);
}
}
}