| File: System\Reflection\Context\Delegation\DelegatingAssembly.cs | Web Access |
| Project: src\runtime\src\libraries\System.Reflection.Context\src\System.Reflection.Context.csproj (System.Reflection.Context) |
// 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.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.IO; using System.Security; namespace System.Reflection.Context.Delegation { internal class DelegatingAssembly : Assembly { // We cannot override ModuleResolve and Permissionset because they are critical. // Users will get NotImplementedException when calling these two APIs. public DelegatingAssembly(Assembly assembly) { Debug.Assert(null != assembly); UnderlyingAssembly = assembly; } #pragma warning disable IL3003 // netstandard2.1 didn't have RequiresAssemblyFiles attributes applied on Assembly [RequiresAssemblyFiles("Calling 'System.Reflection.Assembly.Location' always returns an empty string for assemblies embedded in a single-file app. If the path to the app directory is needed, consider calling 'System.AppContext.BaseDirectory'", Url = "https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/il3000")] public override string Location { get { return UnderlyingAssembly.Location; } } #pragma warning restore IL3003 public override Module ManifestModule { get { return UnderlyingAssembly.ManifestModule; } } public override bool ReflectionOnly { get { return UnderlyingAssembly.ReflectionOnly; } } public Assembly UnderlyingAssembly { get; } public override object[] GetCustomAttributes(Type attributeType, bool inherit) { return UnderlyingAssembly.GetCustomAttributes(attributeType, inherit); } public override object[] GetCustomAttributes(bool inherit) { return UnderlyingAssembly.GetCustomAttributes(inherit); } public override IList<CustomAttributeData> GetCustomAttributesData() { return UnderlyingAssembly.GetCustomAttributesData(); } public override bool IsDefined(Type attributeType, bool inherit) { return UnderlyingAssembly.IsDefined(attributeType, inherit); } public override string ToString() { return UnderlyingAssembly.ToString(); } public override SecurityRuleSet SecurityRuleSet { get { return UnderlyingAssembly.SecurityRuleSet; } } #if NET [Obsolete] [RequiresAssemblyFiles] #endif public override string? CodeBase { get { return UnderlyingAssembly.CodeBase; } } public override object? CreateInstance(string typeName, bool ignoreCase, BindingFlags bindingAttr, Binder? binder, object[]? args, CultureInfo? culture, object[]? activationAttributes) { return UnderlyingAssembly.CreateInstance(typeName, ignoreCase, bindingAttr, binder, args, culture, activationAttributes); } public override MethodInfo? EntryPoint { get { return UnderlyingAssembly.EntryPoint; } } #if NET [Obsolete] [RequiresAssemblyFiles] #endif public override string EscapedCodeBase { get { return UnderlyingAssembly.EscapedCodeBase; } } public override string? FullName { get { return UnderlyingAssembly.FullName; } } public override Type[] GetExportedTypes() { return UnderlyingAssembly.GetExportedTypes(); } #pragma warning disable IL3003 // netstandard2.1 didn't have RequiresAssemblyFiles attributes applied on Assembly [RequiresAssemblyFiles("Calling 'System.Reflection.Assembly.GetFile(string)' will throw for assemblies embedded in a single-file app", Url = "https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/il3001")] public override FileStream? GetFile(string name) { return UnderlyingAssembly.GetFile(name); } [RequiresAssemblyFiles("Calling 'System.Reflection.Assembly.GetFiles()' will throw for assemblies embedded in a single-file app", Url = "https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/il3001")] public override FileStream[] GetFiles() { return UnderlyingAssembly.GetFiles(); } [RequiresAssemblyFiles("Calling 'System.Reflection.Assembly.GetFiles(bool)' will throw for assemblies embedded in a single-file app", Url = "https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/il3001")] public override FileStream[] GetFiles(bool getResourceModules) { return UnderlyingAssembly.GetFiles(getResourceModules); } #pragma warning restore IL3003 public override Module[] GetLoadedModules(bool getResourceModules) { return UnderlyingAssembly.GetLoadedModules(getResourceModules); } public override ManifestResourceInfo? GetManifestResourceInfo(string resourceName) { return UnderlyingAssembly.GetManifestResourceInfo(resourceName); } public override string[] GetManifestResourceNames() { return UnderlyingAssembly.GetManifestResourceNames(); } public override Stream? GetManifestResourceStream(string name) { return UnderlyingAssembly.GetManifestResourceStream(name); } public override Stream? GetManifestResourceStream(Type type, string name) { return UnderlyingAssembly.GetManifestResourceStream(type, name); } public override Module? GetModule(string name) { return UnderlyingAssembly.GetModule(name); } public override Module[] GetModules(bool getResourceModules) { return UnderlyingAssembly.GetModules(getResourceModules); } public override AssemblyName GetName() { return UnderlyingAssembly.GetName(); } public override AssemblyName GetName(bool copiedName) { return UnderlyingAssembly.GetName(copiedName); } public override AssemblyName[] GetReferencedAssemblies() { return UnderlyingAssembly.GetReferencedAssemblies(); } public override Assembly GetSatelliteAssembly(CultureInfo culture) { return UnderlyingAssembly.GetSatelliteAssembly(culture); } public override Assembly GetSatelliteAssembly(CultureInfo culture, Version? version) { return UnderlyingAssembly.GetSatelliteAssembly(culture, version); } public override Type? GetType(string name, bool throwOnError, bool ignoreCase) { return UnderlyingAssembly.GetType(name, throwOnError, ignoreCase); } public override Type[] GetTypes() { return UnderlyingAssembly.GetTypes(); } #if NET [Obsolete] #endif public override bool GlobalAssemblyCache { get { return UnderlyingAssembly.GlobalAssemblyCache; } } public override long HostContext { get { return UnderlyingAssembly.HostContext; } } public override string ImageRuntimeVersion { get { return UnderlyingAssembly.ImageRuntimeVersion; } } public override bool IsDynamic { get { return UnderlyingAssembly.IsDynamic; } } public override Module LoadModule(string moduleName, byte[]? rawModule, byte[]? rawSymbolStore) { return UnderlyingAssembly.LoadModule(moduleName, rawModule, rawSymbolStore); } } }