File: System\Reflection\Metadata\Decoding\ICustomAttributeTypeProvider.cs
Web Access
Project: src\src\libraries\System.Reflection.Metadata\src\System.Reflection.Metadata.csproj (System.Reflection.Metadata)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace System.Reflection.Metadata
{
    public interface ICustomAttributeTypeProvider<TType> : ISimpleTypeProvider<TType>, ISZArrayTypeProvider<TType>
    {
        /// <summary>
        /// Gets the TType representation for <see cref="Type"/>.
        /// </summary>
        TType GetSystemType();
 
        /// <summary>
        /// Returns true if the given type represents <see cref="Type"/>.
        /// </summary>
        bool IsSystemType(TType type);
 
        /// <summary>
        /// Get the type symbol for the given serialized type name.
        /// The serialized type name is in so-called "reflection notation" (i.e. as understood by <see cref="Type.GetType(string)"/>.)
        /// </summary>
        /// <exception cref="BadImageFormatException">The name is malformed.</exception>
        TType GetTypeFromSerializedName(string name);
 
        /// <summary>
        /// Gets the underlying type of the given enum type symbol.
        /// </summary>
        /// <exception cref="BadImageFormatException">The given type symbol does not represent an enum.</exception>
        PrimitiveTypeCode GetUnderlyingEnumType(TType type);
    }
}