| File: System\Reflection\Runtime\Modules\RuntimeModule.cs | Web Access |
| Project: src\runtime\src\coreclr\nativeaot\System.Private.CoreLib\src\System.Private.CoreLib.csproj (System.Private.CoreLib) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Reflection.Runtime.Assemblies; using System.Runtime.Serialization; namespace System.Reflection.Runtime.Modules { // // The runtime's implementation of a Module. // // Modules are quite meaningless in .NET Core but we have to keep up the appearances since they still exist in surface area. // Each Assembly has one (manifest) module. // internal abstract partial class RuntimeModule : Module { protected RuntimeModule() : base() { } public abstract override Assembly Assembly { get; } public abstract override IEnumerable<CustomAttributeData> CustomAttributes { get; } [RequiresAssemblyFiles(UnknownStringMessageInRAF)] public sealed override string FullyQualifiedName { get { return "<Unknown>"; } } [RequiresAssemblyFiles(UnknownStringMessageInRAF)] public sealed override string Name { get { return "<Unknown>"; } } public sealed override bool Equals(object obj) { if (!(obj is RuntimeModule other)) return false; return Assembly.Equals(other.Assembly); } public sealed override int GetHashCode() { return Assembly.GetHashCode(); } [Obsolete(Obsoletions.LegacyFormatterImplMessage, DiagnosticId = Obsoletions.LegacyFormatterImplDiagId, UrlFormat = Obsoletions.SharedUrlFormat)] [EditorBrowsable(EditorBrowsableState.Never)] public sealed override void GetObjectData(SerializationInfo info, StreamingContext context) { throw new PlatformNotSupportedException(); } public abstract override int MetadataToken { get; } [RequiresUnreferencedCode("Types might be removed by trimming. If the type name is a string literal, consider using Type.GetType instead.")] public sealed override Type GetType(string name, bool throwOnError, bool ignoreCase) { return Assembly.GetType(name, throwOnError, ignoreCase); } [RequiresUnreferencedCode("Types might be removed")] public sealed override Type[] GetTypes() { Debug.Assert(this.Equals(Assembly.ManifestModule)); // We only support single-module assemblies so we have to be the manifest module. return Assembly.GetTypes(); } public abstract override Guid ModuleVersionId { get; } public sealed override bool IsResource() { throw new PlatformNotSupportedException(); } public sealed override void GetPEKind(out PortableExecutableKinds peKind, out ImageFileMachine machine) { throw new PlatformNotSupportedException(); } public sealed override int MDStreamVersion { get { throw new PlatformNotSupportedException(); } } [RequiresUnreferencedCode("Trimming changes metadata tokens")] public sealed override FieldInfo ResolveField(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments) { throw new PlatformNotSupportedException(); } [RequiresUnreferencedCode("Trimming changes metadata tokens")] public sealed override MemberInfo ResolveMember(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments) { throw new PlatformNotSupportedException(); } [RequiresUnreferencedCode("Trimming changes metadata tokens")] public sealed override MethodBase ResolveMethod(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments) { throw new PlatformNotSupportedException(); } [RequiresUnreferencedCode("Trimming changes metadata tokens")] public sealed override byte[] ResolveSignature(int metadataToken) { throw new PlatformNotSupportedException(); } [RequiresUnreferencedCode("Trimming changes metadata tokens")] public sealed override string ResolveString(int metadataToken) { throw new PlatformNotSupportedException(); } [RequiresUnreferencedCode("Trimming changes metadata tokens")] public sealed override Type ResolveType(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments) { throw new PlatformNotSupportedException(); } private protected sealed override ModuleHandle GetModuleHandleImpl() => new ModuleHandle(this); } }