using FishNet.Documenting; using FishNet.Utility; using System; using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo(UtilityConstants.GENERATED_ASSEMBLY_NAME)] //Required for internal tests. [assembly: InternalsVisibleTo(UtilityConstants.TEST_ASSEMBLY_NAME)] namespace FishNet.Serializing { /// /// Used for read references to generic types. /// /// [APIExclude] public static class GenericReader { public static Func Read { get; set; } public static Func ReadAutoPack { get; set; } /// /// True if this type has a custom writer. /// private static bool _hasCustomSerializer; public static void SetReadUnpacked(Func value) { /* If a custom serializer has already been set then exit method * to not overwrite serializer. */ if (_hasCustomSerializer) return; //Set has custom serializer if value being used is not a generated method. _hasCustomSerializer = !(value.Method.Name.StartsWith(UtilityConstants.GENERATED_READER_PREFIX)); Read = value; } public static void SetReadAutoPacked(Func value) { ReadAutoPack = value; } } }