/// <summary> /// Generates serialization methods for synclists /// </summary> /// <param name="td">The synclist class</param> public static void Process(TypeDefinition td) { var resolver = new GenericArgumentResolver(2); TypeReference syncDictionaryType = WeaverTypes.Import(typeof(SyncDictionary <,>)); TypeReference keyType = resolver.GetGenericFromBaseClass(td, 0, syncDictionaryType); if (keyType != null) { SyncObjectProcessor.GenerateSerialization(td, keyType, syncDictionaryType, "SerializeKey", "DeserializeKey"); } else { Weaver.Error($"Could not find generic arguments for SyncDictionary in {td.Name}", td); return; } TypeReference itemType = resolver.GetGenericFromBaseClass(td, 1, syncDictionaryType); if (itemType != null) { SyncObjectProcessor.GenerateSerialization(td, itemType, syncDictionaryType, "SerializeItem", "DeserializeItem"); } else { Weaver.Error($"Could not find generic arguments for SyncDictionary in {td.Name}", td); } }
/// <summary> /// Generates serialization methods for synclists /// </summary> /// <param name="td">The synclist class</param> /// <param name="mirrorBaseType">the base SyncObject td inherits from</param> public static void Process(TypeDefinition td, TypeReference mirrorBaseType) { GenericArgumentResolver resolver = new GenericArgumentResolver(1); if (resolver.GetGenericFromBaseClass(td, 0, mirrorBaseType, out TypeReference itemType)) { SyncObjectProcessor.GenerateSerialization(td, itemType, mirrorBaseType, "SerializeItem", "DeserializeItem"); } else { Weaver.Error($"Could not find generic arguments for {mirrorBaseType.Name} in {td}", td); } }
/// <summary> /// Generates serialization methods for synclists /// </summary> /// <param name="td">The synclist class</param> public static void Process(TypeDefinition td) { GenericArgumentResolver resolver = new GenericArgumentResolver(2); if (resolver.GetGenericFromBaseClass(td, 0, WeaverTypes.SyncDictionaryType, out TypeReference keyType)) { SyncObjectProcessor.GenerateSerialization(td, keyType, WeaverTypes.SyncDictionaryType, "SerializeKey", "DeserializeKey"); } else { Weaver.Error($"Could not find generic arguments for SyncDictionary in {td.Name}", td); return; } if (resolver.GetGenericFromBaseClass(td, 1, WeaverTypes.SyncDictionaryType, out TypeReference itemType)) { SyncObjectProcessor.GenerateSerialization(td, itemType, WeaverTypes.SyncDictionaryType, "SerializeItem", "DeserializeItem"); } else { Weaver.Error($"Could not find generic arguments for SyncDictionary in {td.Name}", td); } }