public TypeWrapper(Type type) { Type = type; int maxArgIndex = -1; Serializer = CustomStore.FindSerializer(type); if (Serializer != null) { return; } UpdateFields(ref maxArgIndex); UpdateProperties(ref maxArgIndex); createFunc = UpdateConstructors(maxArgIndex, out ConstructorArgsCount, out ConstructorArgNames); IsSelfSerializable = SerializationBase.HaveInterface(type, typeof(INanoSerializable)); }
/// <summary> /// Registers custom serializer for given type. This serializer will be used when serializing or deserializing all objects of this type. /// </summary> /// <typeparam name="TTarget">Type to register serializer for</typeparam> /// <param name="serializer">The serializer which will provide serialization/deserialization logic for given type</param> public static void RegisterCustomSerializer <TTarget>(INanoSerializer serializer) { RegisterCustomSerializer(typeof(TTarget), serializer); }
/// <summary> /// Registers custom serializer for given type. This serializer will be used when serializing or deserializing all objects of this type. /// </summary> /// <param name="type">Type to register serializer for</param> /// <param name="serializer">The serializer which will provide serialization/deserialization logic for given type</param> public static void RegisterCustomSerializer(Type type, INanoSerializer serializer) { customSerializers[type] = serializer; }