File: System\ComponentModel\Design\Serialization\DefaultSerializationProviderAttribute.cs
Web Access
Project: src\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>
    /// The default serialization provider attribute is placed on a serializer
    /// to indicate the class to use as a default provider of that type of
    /// serializer. To be a default serialization provider, a class must
    /// implement IDesignerSerilaizationProvider and have an empty
    /// constructor. The class itself can be internal to the assembly.
    /// </summary>
    [AttributeUsage(AttributeTargets.Class, Inherited = false)]
    public sealed class DefaultSerializationProviderAttribute : Attribute
    {
        /// <summary>
        /// Creates a new DefaultSerializationProviderAttribute
        /// </summary>
        public DefaultSerializationProviderAttribute(Type providerType)
        {
            ArgumentNullException.ThrowIfNull(providerType);
 
            ProviderTypeName = providerType.AssemblyQualifiedName!;
        }
 
        /// <summary>
        /// Creates a new DefaultSerializationProviderAttribute
        /// </summary>
        public DefaultSerializationProviderAttribute(string providerTypeName)
        {
            ArgumentNullException.ThrowIfNull(providerTypeName);
 
            ProviderTypeName = providerTypeName;
        }
 
        /// <summary>
        /// Returns the type name for the default serialization provider.
        /// </summary>
        public string ProviderTypeName { get; }
    }
}