Catel.Runtime.Serialization.SerializationManager.AddSerializerModifier C# (CSharp) Method

AddSerializerModifier() public method

Adds the serializer modifier for a specific type.
The is null. The is null.
public AddSerializerModifier ( Type type, Type serializerModifierType ) : void
type System.Type The type.
serializerModifierType System.Type Type of the serializer modifier.
return void
        public void AddSerializerModifier(Type type, Type serializerModifierType)
        {
            Argument.IsNotNull("type", type);
            Argument.IsNotNull("serializerModifierType", serializerModifierType);

            List<Type> serializerModifierTypes = null;
            if (!_serializationModifierDefinitionsPerTypeCache.TryGetValue(type, out serializerModifierTypes))
            {
                serializerModifierTypes = new List<Type>();
                _serializationModifierDefinitionsPerTypeCache[type] = serializerModifierTypes;
            }

            Log.Debug($"Adding serializer modifier '{serializerModifierType.Name}' for '{type.Name}'");

            if (serializerModifierTypes.Contains(serializerModifierType))
            {
                Log.Debug($"Serializer modifier '{serializerModifierType.Name}' for '{type.Name}' is already registered");
                return;
            }

            serializerModifierTypes.Add(serializerModifierType);
            _serializationModifiersPerTypeCache.Remove(type);
        }

Usage Example

Example #1
0
            public void RemovesSerializerModifier()
            {
                var serializationManager = new SerializationManager();

                serializationManager.AddSerializerModifier<DynamicSerializerModifierModel, DynamicSerializerModifier>();

                var modifiers = serializationManager.GetSerializerModifiers(typeof(DynamicSerializerModifierModel));

                Assert.AreEqual(1, modifiers.Length);
                Assert.AreEqual(typeof(DynamicSerializerModifier), modifiers[0].GetType());

                serializationManager.RemoveSerializerModifier<DynamicSerializerModifierModel, DynamicSerializerModifier>();

                modifiers = serializationManager.GetSerializerModifiers(typeof(DynamicSerializerModifierModel));

                Assert.AreEqual(0, modifiers.Length);
            }
All Usage Examples Of Catel.Runtime.Serialization.SerializationManager::AddSerializerModifier