Contextual reflection (#23740)
authorSteve MacLean <stmaclea@microsoft.com>
Thu, 11 Apr 2019 04:20:39 +0000 (00:20 -0400)
committerGitHub <noreply@github.com>
Thu, 11 Apr 2019 04:20:39 +0000 (00:20 -0400)
commit206f9680303134731862a35338618f2cbd225651
tree19100fe89a23239d36c6ddd2669f110d58a88aaa
parentcb22707acb620e93a30254ded3048912a9ccb26f
Contextual reflection (#23740)

* Add ContextualReflection APIs

Add ContextualReflection APIs approved in dotnet/corefx#36236
Fix issue #22213

* SetParentAssembly even when IsCollectible()
* ContextualReflection tests

* PR Feedback
* Add more usage tests

Add using statement tests
Add bad usage tests including Assert.Throws<>

* Only initialize on set
* Add XML API comments
* Unify VerifyIsolation
* Fix unused expectedAssembly
* Remove ContextualReflectionScope throw
* Clean up TestResolveMissingAssembly et. al
* Remove unused QCall::AppDomainHandle
* Remove AppDomainBaseObject
* Pass AssemblyLoadContext as managed object to native
* Fix AssemblyLoadContextBaseObject packing

* AssemblyLoadContext backing stores

Use explicit backing stores for events and properties

* Remove StaticAsyncLocalCurrentContextualReflectionContext
* Remove PermissionSetObject
23 files changed:
src/System.Private.CoreLib/shared/System/Activator.RuntimeType.cs
src/System.Private.CoreLib/shared/System/Runtime/Loader/AssemblyLoadContext.cs
src/System.Private.CoreLib/src/System/Reflection/Assembly.CoreCLR.cs
src/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs
src/System.Private.CoreLib/src/System/Runtime/Loader/AssemblyLoadContext.CoreCLR.cs
src/System.Private.CoreLib/src/System/RuntimeHandles.cs
src/System.Private.CoreLib/src/System/TypeNameParser.cs
src/strongname/api/common.h
src/vm/assemblynative.cpp
src/vm/assemblynative.hpp
src/vm/common.h
src/vm/mscorlib.h
src/vm/object.h
src/vm/qcall.cpp
src/vm/qcall.h
src/vm/runtimehandles.cpp
src/vm/runtimehandles.h
src/vm/typeparse.cpp
src/vm/vars.hpp
tests/src/Loader/ContextualReflection/ContextualReflection.cs [new file with mode: 0644]
tests/src/Loader/ContextualReflection/ContextualReflection.csproj [new file with mode: 0644]
tests/src/Loader/ContextualReflection/ContextualReflectionDependency.cs [new file with mode: 0644]
tests/src/Loader/ContextualReflection/ContextualReflectionDependency.csproj [new file with mode: 0644]