Number of libraries, including the new minimal ASP.NET host, use Assembly.GetCallingAssembly()
for convenience. Assembly.GetCallingAssembly()
is slow and unreliable API, and also not compatible with AOT technologies (e.g. dotnet/runtime#53825). We need a fast, reliable and AOT-friendly replacement of Assembly.GetCallingAssembly()
.
namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)] public sealed class CallerIdentityAttribute : Attribute { public CallerIdentityAttribute(); } }
This attribute can be applied to parameters of type System.Reflection.Assembly
, System.Reflection.Type
, System.Reflection.MethodBase
. When the C# compiler sees parameter tagged with this attribute, it will provide default value for it, according to the caller context:
System.Reflection.Assembly
: typeof(containing_type).Assembly
System.Reflection.Type
: typeof(containing_type)
System.Reflection.MethodBase
: MethodBase.GetMethodFromHandle(ldtoken containing_method)
rgwood, jnm2, antonheryanto, ForNeVeR, orthoxerox and 46 moreD3-LucaPiombino, Mrxx99, PathogenDavid, Unknown6656, Nyrest and 11 more
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4