| File: System\ComponentModel\Design\Serialization\IDesignerSerializationProvider.cs | Web Access |
| Project: src\runtime\src\libraries\System.ComponentModel.TypeConverter\src\System.ComponentModel.TypeConverter.csproj (System.ComponentModel.TypeConverter) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace System.ComponentModel.Design.Serialization { /// <summary> /// This interface defines a custom serialization provider. This /// allows outside objects to control serialization by providing /// their own serializer objects. /// </summary> public interface IDesignerSerializationProvider { /// <summary> /// This will be called by the serialization manager when it /// is trying to locate a serializer for an object type. /// If this serialization provider can provide a serializer /// that is of the correct type, it should return it. /// Otherwise, it should return null. /// /// In order to break order dependencies between multiple /// serialization providers the serialization manager will /// loop through all serialization providers until the /// serializer returned reaches steady state. Because /// of this you should always check currentSerializer /// before returning a new serializer. If currentSerializer /// is an instance of your serializer, then you should /// either return it or return null to prevent an infinite /// loop. /// </summary> object? GetSerializer(IDesignerSerializationManager manager, object? currentSerializer, Type? objectType, Type serializerType); } }