From 4eaaf460e21fe1a571a27cc0f1f19e22a51e490a Mon Sep 17 00:00:00 2001
From: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Date: Mon, 30 Mar 2026 16:04:08 -0700
Subject: [PATCH 1/8] System.R*
---
.../CustomReflectionContext.xml | 82 +-
.../AssemblyBuilder.xml | 50 +-
.../ConstructorBuilder.xml | 16 +-
.../CustomAttributeBuilder.xml | 8 +-
xml/System.Reflection.Emit/DynamicILInfo.xml | 20 +-
xml/System.Reflection.Emit/DynamicMethod.xml | 60 +-
xml/System.Reflection.Emit/EnumBuilder.xml | 42 +-
xml/System.Reflection.Emit/EventToken.xml | 4 +-
xml/System.Reflection.Emit/FieldBuilder.xml | 10 +-
xml/System.Reflection.Emit/FieldToken.xml | 4 +-
.../GenericTypeParameterBuilder.xml | 26 +-
xml/System.Reflection.Emit/ILGenerator.xml | 34 +-
xml/System.Reflection.Emit/Label.xml | 4 +-
xml/System.Reflection.Emit/LocalBuilder.xml | 10 +-
xml/System.Reflection.Emit/MethodBuilder.xml | 78 +-
xml/System.Reflection.Emit/MethodToken.xml | 4 +-
xml/System.Reflection.Emit/ModuleBuilder.xml | 88 +-
xml/System.Reflection.Emit/OpCode.xml | 4 +-
xml/System.Reflection.Emit/OpCodes.xml | 896 +++++++++---------
.../ParameterBuilder.xml | 2 +-
xml/System.Reflection.Emit/ParameterToken.xml | 4 +-
.../PropertyBuilder.xml | 6 +-
xml/System.Reflection.Emit/PropertyToken.xml | 4 +-
.../SignatureHelper.xml | 14 +-
xml/System.Reflection.Emit/SignatureToken.xml | 4 +-
xml/System.Reflection.Emit/StringToken.xml | 4 +-
xml/System.Reflection.Emit/TypeBuilder.xml | 176 ++--
xml/System.Reflection.Emit/TypeToken.xml | 4 +-
.../MethodBodyBlock.xml | 2 +-
.../MethodDebugInformation.xml | 4 +-
.../CodeViewDebugDirectoryData.xml | 2 +-
.../AmbiguousMatchException.xml | 14 +-
xml/System.Reflection/Assembly.xml | 272 +++---
.../AssemblyFlagsAttribute.xml | 2 +-
xml/System.Reflection/AssemblyName.xml | 44 +-
.../AssemblyVersionAttribute.xml | 4 +-
xml/System.Reflection/Binder.xml | 10 +-
xml/System.Reflection/BindingFlags.xml | 36 +-
xml/System.Reflection/ConstructorInfo.xml | 12 +-
xml/System.Reflection/CustomAttributeData.xml | 24 +-
.../CustomAttributeExtensions.xml | 120 +--
.../CustomAttributeFormatException.xml | 10 +-
.../CustomAttributeNamedArgument.xml | 8 +-
.../CustomAttributeTypedArgument.xml | 16 +-
xml/System.Reflection/EventInfo.xml | 32 +-
.../ExceptionHandlingClause.xml | 16 +-
.../ExceptionHandlingClauseOptions.xml | 4 +-
xml/System.Reflection/FieldInfo.xml | 46 +-
.../GenericParameterAttributes.xml | 2 +-
.../ICustomAttributeProvider.xml | 4 +-
xml/System.Reflection/IReflect.xml | 6 +-
xml/System.Reflection/ImageFileMachine.xml | 14 +-
xml/System.Reflection/InterfaceMapping.xml | 44 +-
.../InvalidFilterCriteriaException.xml | 12 +-
xml/System.Reflection/LocalVariableInfo.xml | 4 +-
xml/System.Reflection/MemberFilter.xml | 14 +-
xml/System.Reflection/MemberInfo.xml | 18 +-
.../MemberInfoExtensions.xml | 20 +-
xml/System.Reflection/MemberTypes.xml | 6 +-
.../MetadataAssemblyResolver.xml | 2 +-
xml/System.Reflection/MetadataLoadContext.xml | 30 +-
xml/System.Reflection/MethodBase.xml | 60 +-
xml/System.Reflection/MethodBody.xml | 16 +-
xml/System.Reflection/MethodInfo.xml | 62 +-
xml/System.Reflection/Module.xml | 54 +-
.../ObfuscationAttribute.xml | 2 +-
xml/System.Reflection/ParameterInfo.xml | 70 +-
xml/System.Reflection/ParameterModifier.xml | 2 +-
.../PortableExecutableKinds.xml | 14 +-
xml/System.Reflection/PropertyInfo.xml | 74 +-
.../ReflectionTypeLoadException.xml | 2 +-
xml/System.Reflection/TargetException.xml | 12 +-
.../TargetInvocationException.xml | 10 +-
.../TargetParameterCountException.xml | 12 +-
xml/System.Reflection/TypeAttributes.xml | 2 +-
xml/System.Reflection/TypeDelegator.xml | 16 +-
xml/System.Reflection/TypeFilter.xml | 2 +-
xml/System.Reflection/TypeInfo.xml | 4 +-
.../StronglyTypedResourceBuilder.xml | 16 +-
xml/System.Resources/IResourceReader.xml | 30 +-
xml/System.Resources/IResourceWriter.xml | 64 +-
.../MissingManifestResourceException.xml | 12 +-
.../MissingSatelliteAssemblyException.xml | 22 +-
.../NeutralResourcesLanguageAttribute.xml | 2 +-
xml/System.Resources/ResXDataNode.xml | 12 +-
.../ResXFileRef+Converter.xml | 18 +-
xml/System.Resources/ResXFileRef.xml | 66 +-
xml/System.Resources/ResXResourceReader.xml | 30 +-
xml/System.Resources/ResXResourceSet.xml | 2 +-
xml/System.Resources/ResXResourceWriter.xml | 32 +-
xml/System.Resources/ResourceManager.xml | 32 +-
xml/System.Resources/ResourceReader.xml | 30 +-
xml/System.Resources/ResourceSet.xml | 30 +-
xml/System.Resources/ResourceWriter.xml | 54 +-
.../UltimateResourceFallbackLocation.xml | 14 +-
.../IApplicationIdentifier.xml | 4 +-
.../IFileChangeNotificationSystem.xml | 4 +-
.../IMemoryCacheManager.xml | 4 +-
.../CacheEntryChangeMonitor.xml | 2 +-
.../CacheEntryRemovedArguments.xml | 46 +-
xml/System.Runtime.Caching/CacheItem.xml | 4 +-
xml/System.Runtime.Caching/ChangeMonitor.xml | 42 +-
.../HostFileChangeMonitor.xml | 2 +-
xml/System.Runtime.Caching/MemoryCache.xml | 42 +-
xml/System.Runtime.Caching/ObjectCache.xml | 40 +-
.../SqlChangeMonitor.xml | 34 +-
.../AsyncStateMachineAttribute.xml | 2 +-
.../CallConvCdecl.xml | 2 +-
.../CallConvFastcall.xml | 2 +-
.../CallConvStdcall.xml | 2 +-
.../CallConvThiscall.xml | 2 +-
...itionalWeakTable`2+CreateValueCallback.xml | 28 +-
.../ConditionalWeakTable`2.xml | 40 +-
.../ContractHelper.xml | 20 +-
.../DisablePrivateReflectionAttribute.xml | 10 +-
.../InlineArrayAttribute.xml | 2 +-
.../InternalsVisibleToAttribute.xml | 2 +-
.../IsBoxed.xml | 2 +-
.../IsByValue.xml | 2 +-
.../IsConst.xml | 2 +-
.../IsCopyConstructed.xml | 2 +-
.../IsExplicitlyDereferenced.xml | 2 +-
.../IsImplicitlyDereferenced.xml | 2 +-
.../IsJitIntrinsic.xml | 2 +-
.../IsLong.xml | 2 +-
.../IsPinned.xml | 2 +-
.../IsSignUnspecifiedByte.xml | 2 +-
.../IsUdtReturn.xml | 2 +-
.../IsVolatile.xml | 2 +-
.../IteratorStateMachineAttribute.xml | 2 +-
.../MethodImplAttribute.xml | 4 +-
.../RuntimeHelpers+CleanupCode.xml | 10 +-
.../RuntimeHelpers+TryCode.xml | 10 +-
.../RuntimeHelpers.xml | 32 +-
.../RuntimeWrappedException.xml | 2 +-
.../TupleElementNamesAttribute.xml | 10 +-
.../Unsafe.xml | 22 +-
.../Cer.xml | 36 +-
.../Consistency.xml | 24 +-
.../ReliabilityContractAttribute.xml | 4 +-
.../InstanceStore.xml | 120 +--
.../ExceptionDispatchInfo.xml | 44 +-
.../ApplicationActivator.xml | 12 +-
.../CONNECTDATA.xml | 16 +-
.../IAdviseSink.xml | 60 +-
.../ITypeInfo.xml | 198 ++--
.../ITypeInfo2.xml | 8 +-
.../ITypeLib.xml | 112 +--
.../ITypeLib2.xml | 112 +--
.../EnumerableToDispatchMarshaler.xml | 72 +-
.../EnumeratorToEnumVariantMarshaler.xml | 72 +-
.../ExpandoToDispatchExMarshaler.xml | 80 +-
.../TypeToTypeInfoMarshaler.xml | 80 +-
.../ReadOnlySpanMarshaller`2.xml | 2 +-
.../SpanMarshaller`2.xml | 2 +-
.../EventRegistrationTokenTable`1.xml | 4 +-
.../WindowsRuntimeMarshal.xml | 2 +-
.../WindowsRuntimeMetadata.xml | 52 +-
.../ArrayWithOffset.xml | 14 +-
.../COMException.xml | 16 +-
.../CONNECTDATA.xml | 14 +-
.../CollectionsMarshal.xml | 2 +-
.../ComAwareEventInfo.xml | 24 +-
.../ComRegisterFunctionAttribute.xml | 2 +-
.../ComUnregisterFunctionAttribute.xml | 26 +-
.../CriticalHandle.xml | 34 +-
.../DllImportAttribute.xml | 6 +-
.../ExporterEventKind.xml | 10 +-
.../ExtensibleClassFactory.xml | 38 +-
.../ExternalException.xml | 20 +-
.../GCHandle.xml | 188 ++--
.../HandleRef.xml | 2 +-
.../ICustomFactory.xml | 20 +-
.../IRegistrationServices.xml | 92 +-
.../ITypeLibExporterNameProvider.xml | 20 +-
.../ImporterEventKind.xml | 10 +-
.../InvalidComObjectException.xml | 14 +-
.../InvalidOleVariantTypeException.xml | 12 +-
.../Marshal.xml | 504 +++++-----
.../MarshalDirectiveException.xml | 12 +-
.../MemoryMarshal.xml | 8 +-
xml/System.Runtime.InteropServices/NFloat.xml | 22 +-
.../NativeLibrary.xml | 2 +-
.../OSPlatform.xml | 62 +-
.../RegistrationClassContext.xml | 14 +-
.../RegistrationConnectionType.xml | 14 +-
.../RegistrationServices.xml | 20 +-
.../RuntimeEnvironment.xml | 8 +-
.../SEHException.xml | 14 +-
.../SafeArrayRankMismatchException.xml | 12 +-
.../SafeArrayTypeMismatchException.xml | 12 +-
.../SafeBuffer.xml | 10 +-
.../SafeHandle.xml | 42 +-
.../TypeIdentifierAttribute.xml | 2 +-
.../TypeLibExporterFlags.xml | 10 +-
.../TypeLibImporterFlags.xml | 2 +-
.../TypeMapAssociationAttribute`1.xml | 4 +-
.../TypeMapAttribute`1.xml | 4 +-
.../UCOMITypeInfo.xml | 234 ++---
.../UCOMITypeLib.xml | 132 +--
.../VariantWrapper.xml | 50 +-
.../_Assembly.xml | 88 +-
.../_ConstructorInfo.xml | 26 +-
.../_EventInfo.xml | 36 +-
.../_Exception.xml | 12 +-
.../_FieldInfo.xml | 26 +-
.../_MemberInfo.xml | 14 +-
.../_MethodBase.xml | 24 +-
.../_MethodInfo.xml | 26 +-
.../_PropertyInfo.xml | 46 +-
xml/System.Runtime.InteropServices/_Type.xml | 156 +--
...yLoadContext+ContextualReflectionScope.xml | 2 +-
.../AssemblyLoadContext.xml | 4 +-
.../ActivatorLevel.xml | 10 +-
.../IActivator.xml | 2 +-
.../IConstructionCallMessage.xml | 6 +-
.../UrlAttribute.xml | 6 +-
.../HttpChannel.xml | 16 +-
.../HttpClientChannel.xml | 8 +-
.../HttpRemotingHandler.xml | 30 +-
.../HttpRemotingHandlerFactory.xml | 20 +-
.../HttpServerChannel.xml | 16 +-
.../IpcChannel.xml | 18 +-
.../IpcClientChannel.xml | 10 +-
.../IpcServerChannel.xml | 16 +-
.../TcpChannel.xml | 14 +-
.../TcpClientChannel.xml | 6 +-
.../TcpServerChannel.xml | 12 +-
.../BaseChannelObjectWithProperties.xml | 122 +--
.../BinaryClientFormatterSink.xml | 4 +-
.../BinaryClientFormatterSinkProvider.xml | 4 +-
.../BinaryServerFormatterSink.xml | 6 +-
.../BinaryServerFormatterSinkProvider.xml | 4 +-
.../ChannelServices.xml | 8 +-
.../ClientChannelSinkStack.xml | 50 +-
.../IAuthorizeRemotingConnection.xml | 30 +-
.../IChannel.xml | 70 +-
.../IChannelReceiver.xml | 90 +-
.../IChannelSender.xml | 40 +-
.../IClientChannelSink.xml | 2 +-
.../IClientChannelSinkProvider.xml | 74 +-
.../IClientChannelSinkStack.xml | 28 +-
.../IClientResponseChannelSinkStack.xml | 30 +-
.../IServerChannelSink.xml | 78 +-
.../IServerChannelSinkProvider.xml | 70 +-
.../IServerChannelSinkStack.xml | 48 +-
.../IServerResponseChannelSinkStack.xml | 10 +-
.../ServerChannelSinkStack.xml | 86 +-
.../SoapClientFormatterSink.xml | 2 +-
.../SoapClientFormatterSinkProvider.xml | 4 +-
.../SoapServerFormatterSink.xml | 2 +-
.../SoapServerFormatterSinkProvider.xml | 4 +-
.../Context.xml | 134 +--
.../ContextAttribute.xml | 4 +-
.../IContextAttribute.xml | 2 +-
.../IContributeClientContextSink.xml | 14 +-
.../IContributeEnvoySink.xml | 20 +-
.../IContributeServerContextSink.xml | 18 +-
.../IDynamicMessageSink.xml | 30 +-
.../SynchronizationAttribute.xml | 102 +-
.../ClientSponsor.xml | 4 +-
.../ILease.xml | 6 +-
.../ISponsor.xml | 40 +-
.../LifetimeServices.xml | 2 +-
.../AsyncResult.xml | 24 +-
.../CallContext.xml | 6 +-
.../ILogicalThreadAffinative.xml | 24 +-
.../IMessageSink.xml | 56 +-
.../IMethodCallMessage.xml | 2 +-
.../IMethodMessage.xml | 2 +-
.../IMethodReturnMessage.xml | 4 +-
.../LogicalCallContext.xml | 42 +-
.../MethodCall.xml | 4 +-
.../MethodResponse.xml | 2 +-
.../SoapAnyUri.xml | 6 +-
.../SoapBase64Binary.xml | 6 +-
.../SoapDate.xml | 192 ++--
.../SoapDay.xml | 8 +-
.../SoapDuration.xml | 4 +-
.../SoapHexBinary.xml | 6 +-
.../SoapInteger.xml | 6 +-
.../SoapMonth.xml | 8 +-
.../SoapMonthDay.xml | 8 +-
.../SoapNegativeInteger.xml | 6 +-
.../SoapNonNegativeInteger.xml | 6 +-
.../SoapNonPositiveInteger.xml | 6 +-
.../SoapPositiveInteger.xml | 6 +-
.../SoapQName.xml | 6 +-
.../SoapTime.xml | 150 +--
.../SoapYear.xml | 168 ++--
.../SoapYearMonth.xml | 190 ++--
.../SoapTypeAttribute.xml | 2 +-
.../MetaData.xml | 176 ++--
.../SdlChannelSink.xml | 4 +-
.../RealProxy.xml | 12 +-
.../EnterpriseServicesHelper.xml | 2 +-
.../ActivatedClientTypeEntry.xml | 6 +-
.../ActivatedServiceTypeEntry.xml | 6 +-
xml/System.Runtime.Remoting/IChannelInfo.xml | 2 +-
xml/System.Runtime.Remoting/ObjRef.xml | 208 ++--
xml/System.Runtime.Remoting/ObjectHandle.xml | 38 +-
.../RemotingConfiguration.xml | 44 +-
.../RemotingException.xml | 14 +-
.../RemotingServices.xml | 24 +-
.../RemotingTimeoutException.xml | 14 +-
.../ServerException.xml | 14 +-
xml/System.Runtime.Remoting/SoapServices.xml | 6 +-
.../WellKnownClientTypeEntry.xml | 4 +-
.../WellKnownObjectMode.xml | 10 +-
.../WellKnownServiceTypeEntry.xml | 2 +-
.../BinaryFormatter.xml | 4 +-
.../SoapFormatter.xml | 6 +-
.../DataContractJsonSerializer.xml | 6 +-
.../IXmlJsonReaderInitializer.xml | 60 +-
.../IXmlJsonWriterInitializer.xml | 24 +-
.../JsonReaderWriterFactory.xml | 112 +--
.../CollectionDataContractAttribute.xml | 6 +-
.../DataContractAttribute.xml | 2 +-
.../DataContractResolver.xml | 76 +-
.../DataContractSerializer.xml | 22 +-
.../ExtensionDataObject.xml | 2 +-
.../Formatter.xml | 206 ++--
.../FormatterConverter.xml | 150 +--
.../FormatterServices.xml | 14 +-
.../IDataContractSurrogate.xml | 10 +-
.../IFormatter.xml | 76 +-
.../IObjectReference.xml | 14 +-
.../ISafeSerializationData.xml | 4 +-
.../ISerializable.xml | 46 +-
.../ISerializationSurrogate.xml | 22 +-
.../ImportOptions.xml | 4 +-
.../KnownTypeAttribute.xml | 4 +-
.../NetDataContractSerializer.xml | 18 +-
.../ObjectIDGenerator.xml | 32 +-
.../ObjectManager.xml | 136 +--
.../SerializationException.xml | 16 +-
.../SerializationInfo.xml | 16 +-
.../SerializationInfoEnumerator.xml | 2 +-
.../SerializationObjectManager.xml | 30 +-
.../StreamingContext.xml | 2 +-
.../XPathQueryGenerator.xml | 80 +-
.../XmlObjectSerializer.xml | 166 ++--
.../XmlSerializableServices.xml | 2 +-
.../XsdDataContractExporter.xml | 14 +-
.../XsdDataContractImporter.xml | 12 +-
.../ComponentGuaranteesAttribute.xml | 2 +-
.../FrameworkName.xml | 38 +-
.../TargetFrameworkAttribute.xml | 4 +-
xml/System.Runtime/GCSettings.xml | 2 +-
xml/System.Runtime/MemoryFailPoint.xml | 102 +-
xml/System.Runtime/ProfileOptimization.xml | 74 +-
351 files changed, 5880 insertions(+), 5880 deletions(-)
diff --git a/xml/System.Reflection.Context/CustomReflectionContext.xml b/xml/System.Reflection.Context/CustomReflectionContext.xml
index 256e8d55ef1..106b96bcdcb 100644
--- a/xml/System.Reflection.Context/CustomReflectionContext.xml
+++ b/xml/System.Reflection.Context/CustomReflectionContext.xml
@@ -32,35 +32,35 @@
Represents a customizable reflection context.
- provides a way for you to add or remove custom attributes from reflection objects, or add dummy properties to those objects, without re-implementing the complete reflection model. The default simply wraps reflection objects without making any changes, but by subclassing and overriding the relevant methods, you can add, remove, or change the attributes that apply to any reflected parameter or member, or add new properties to a reflected type.
-
- For example, suppose that your code follows the convention of applying a particular attribute to factory methods, but you are now required to work with third-party code that lacks attributes. You can use to specify a rule for identifying the objects that should have attributes and to supply the objects with those attributes when they are viewed from your code.
-
- To use effectively, the code that uses the reflected objects must support the notion of specifying a reflection context, instead of assuming that all reflected objects are associated with the runtime reflection context. Many reflection methods in the .NET Framework provide a parameter for this purpose.
-
- To modify the attributes that are applied to a reflected parameter or member, override the or method. These methods take the reflected object and the list of attributes under its current reflection context, and return the list of attributes it should have under the custom reflection context.
-
+ provides a way for you to add or remove custom attributes from reflection objects, or add dummy properties to those objects, without re-implementing the complete reflection model. The default simply wraps reflection objects without making any changes, but by subclassing and overriding the relevant methods, you can add, remove, or change the attributes that apply to any reflected parameter or member, or add new properties to a reflected type.
+
+ For example, suppose that your code follows the convention of applying a particular attribute to factory methods, but you are now required to work with third-party code that lacks attributes. You can use to specify a rule for identifying the objects that should have attributes and to supply the objects with those attributes when they are viewed from your code.
+
+ To use effectively, the code that uses the reflected objects must support the notion of specifying a reflection context, instead of assuming that all reflected objects are associated with the runtime reflection context. Many reflection methods in the .NET Framework provide a parameter for this purpose.
+
+ To modify the attributes that are applied to a reflected parameter or member, override the or method. These methods take the reflected object and the list of attributes under its current reflection context, and return the list of attributes it should have under the custom reflection context.
+
> [!WARNING]
-> methods should not access the list of attributes of a reflected object or method directly by calling the method on the provided or instance, but should instead use the `declaredAttributes` list, which is passed as a parameter to the method overloads.
-
- To add properties to a reflected type, override the method. The method accepts a parameter that specifies the reflected type, and returns a list of additional properties. You should use the method to create property objects to return. You can specify delegates when creating the property that will serve as the property accessor, and you can omit one of the accessors to create a read-only or write-only property. Note that such dummy properties have no metadata or Common Intermediate Language (CIL) backing.
-
+> methods should not access the list of attributes of a reflected object or method directly by calling the method on the provided or instance, but should instead use the `declaredAttributes` list, which is passed as a parameter to the method overloads.
+
+ To add properties to a reflected type, override the method. The method accepts a parameter that specifies the reflected type, and returns a list of additional properties. You should use the method to create property objects to return. You can specify delegates when creating the property that will serve as the property accessor, and you can omit one of the accessors to create a read-only or write-only property. Note that such dummy properties have no metadata or Common Intermediate Language (CIL) backing.
+
> [!WARNING]
-> Be cautious about equality among reflected objects when you work with reflection contexts, because objects may represent the same reflected object in multiple contexts. You can use the method to obtain a particular reflection context's version of a reflected object.
-
+> Be cautious about equality among reflected objects when you work with reflection contexts, because objects may represent the same reflected object in multiple contexts. You can use the method to obtain a particular reflection context's version of a reflected object.
+
> [!WARNING]
-> A object alters the attributes returned by a particular reflection object, such as those obtained by the method. It does not alter the custom attribute data returned by the method, and these two lists will not match when you use a custom reflection context.
-
-
-
-## Examples
- The following example demonstrates how to subclass to add a custom attribute to all the members of a given type whose names begin with "To". To run this code, paste it into an empty console project, and make sure to include a reference to System.Reflection.Context.dll.
-
- :::code language="csharp" source="~/snippets/csharp/System.Reflection.Context/CustomReflectionContext/Overview/program.cs" id="Snippet1":::
-
+> A object alters the attributes returned by a particular reflection object, such as those obtained by the method. It does not alter the custom attribute data returned by the method, and these two lists will not match when you use a custom reflection context.
+
+
+
+## Examples
+ The following example demonstrates how to subclass to add a custom attribute to all the members of a given type whose names begin with "To". To run this code, paste it into an empty console project, and make sure to include a reference to System.Reflection.Context.dll.
+
+ :::code language="csharp" source="~/snippets/csharp/System.Reflection.Context/CustomReflectionContext/Overview/program.cs" id="Snippet1":::
+
]]>
@@ -157,11 +157,11 @@
When overridden in a derived class, provides a collection of additional properties for the specified type, as represented in this reflection context.
A collection of additional properties for the specified type.
- method.
-
+ method.
+
]]>
@@ -222,11 +222,11 @@
Creates an object that represents a property to be added to a type, to be used with the method.
An object that represents the property.
- objects, and should be used only in the context of the method.
-
+ objects, and should be used only in the context of the method.
+
]]>
@@ -304,11 +304,11 @@
Creates an object that represents a property to be added to a type, to be used with the method and using the specified custom attributes.
An object that represents the property.
- objects, and should be used only in the context of the method.
-
+ objects, and should be used only in the context of the method.
+
]]>
diff --git a/xml/System.Reflection.Emit/AssemblyBuilder.xml b/xml/System.Reflection.Emit/AssemblyBuilder.xml
index fb16c4cdc58..c2ce717f441 100644
--- a/xml/System.Reflection.Emit/AssemblyBuilder.xml
+++ b/xml/System.Reflection.Emit/AssemblyBuilder.xml
@@ -585,7 +585,7 @@ The following code example shows how to define and use a dynamic assembly. The e
The defined dynamic module is transient. The dynamic module is not saved, even if the parent dynamic assembly was created with .
> [!NOTE]
-> To suppress optimizations when debugging dynamic modules, apply the attribute to the dynamic assembly before calling . Create an instance of with the flag and apply it using the method. The attribute must be applied to the dynamic assembly. It has no effect if applied to the module.
+> To suppress optimizations when debugging dynamic modules, apply the attribute to the dynamic assembly before calling . Create an instance of with the flag and apply it using the method. The attribute must be applied to the dynamic assembly. It has no effect if applied to the module.
## Examples
@@ -670,7 +670,7 @@ The following code example shows how to define and use a dynamic assembly. The e
The dynamic module is not saved, even if the parent dynamic assembly was created with .
> [!NOTE]
-> To suppress optimizations when debugging dynamic modules, apply the attribute to the dynamic assembly before calling . Create an instance of with the flag and apply it using the method. The attribute must be applied to the dynamic assembly. It has no effect if applied to the module.
+> To suppress optimizations when debugging dynamic modules, apply the attribute to the dynamic assembly before calling . Create an instance of with the flag and apply it using the method. The attribute must be applied to the dynamic assembly. It has no effect if applied to the module.
## Examples
@@ -750,7 +750,7 @@ The following code example shows how to define and use a dynamic assembly. The e
In an assembly with only one module, that module should contain the assembly manifest.
> [!NOTE]
-> To suppress optimizations when debugging dynamic modules, apply the attribute to the dynamic assembly before calling . Create an instance of with the flag and apply it using the method. The attribute must be applied to the dynamic assembly. It has no effect if applied to the module.
+> To suppress optimizations when debugging dynamic modules, apply the attribute to the dynamic assembly before calling . Create an instance of with the flag and apply it using the method. The attribute must be applied to the dynamic assembly. It has no effect if applied to the module.
## Examples
@@ -837,7 +837,7 @@ The following code example shows how to define and use a dynamic assembly. The e
In an assembly with only one module, that module should contain the assembly manifest.
> [!NOTE]
-> To suppress optimizations when debugging dynamic modules, apply the attribute to the dynamic assembly before calling . Create an instance of with the flag and apply it using the method. The attribute must be applied to the dynamic assembly. It has no effect if applied to the module.
+> To suppress optimizations when debugging dynamic modules, apply the attribute to the dynamic assembly before calling . Create an instance of with the flag and apply it using the method. The attribute must be applied to the dynamic assembly. It has no effect if applied to the module.
## Examples
@@ -958,14 +958,14 @@ The following code example shows how to define and use a dynamic assembly. The e
by calling .
+ Fine grain resources can be added with the returned by calling .
`fileName` should not be the same as that of any other persistable module, stand-alone managed resource, or the stand-alone manifest file.
- The runtime calls the method when the dynamic assembly is saved.
+ The runtime calls the method when the dynamic assembly is saved.
## Examples
- The following example uses the method to get a resource writer. The example uses the resource writer to add three resource strings.
+ The following example uses the method to get a resource writer. The example uses the resource writer to add three resource strings.
:::code language="csharp" source="~/snippets/csharp/System.Reflection.Emit/AssemblyBuilder/DefineResource/assemblybuilder_defineresource.cs" id="Snippet1":::
:::code language="vb" source="~/snippets/visualbasic/System.Reflection.Emit/AssemblyBuilder/DefineResource/assemblybuilder_defineresource.vb" id="Snippet1":::
@@ -1041,11 +1041,11 @@ The following code example shows how to define and use a dynamic assembly. The e
by calling .
+ Fine-grain resources can be added with the returned by calling .
`fileName` should not be the same as that of any other persistable module, standalone managed resource, or the standalone manifest file.
- The runtime calls the method when the dynamic assembly is saved.
+ The runtime calls the method when the dynamic assembly is saved.
]]>
@@ -1111,7 +1111,7 @@ The following code example shows how to define and use a dynamic assembly. The e
or after either one of the methods was called previously will throw the System.ArgumentException being throw. Multiple unmanaged resources need to be merged with a tool such as the Microsoft ResMerge utility (not supplied with the common language runtime).
+ An assembly can be associated with only one unmanaged resource. This means that calling or after either one of the methods was called previously will throw the System.ArgumentException being throw. Multiple unmanaged resources need to be merged with a tool such as the Microsoft ResMerge utility (not supplied with the common language runtime).
@@ -1168,7 +1168,7 @@ The following code example shows how to define and use a dynamic assembly. The e
or after either one of the methods was called previously will throw the System.ArgumentException. Multiple unmanaged resources need to be merged with a tool such as the Microsoft ResMerge utility (not supplied with the common language runtime).
+ An assembly can be associated with only one unmanaged resource. This means that calling or after either one of the methods was called previously will throw the System.ArgumentException. Multiple unmanaged resources need to be merged with a tool such as the Microsoft ResMerge utility (not supplied with the common language runtime).
## Examples
The example below demonstrates a call to `DefineUnmanagedResource`, passing an external resource file.
@@ -1238,7 +1238,7 @@ The following code example shows how to define and use a dynamic assembly. The e
or after either one of the methods was called previously will throw the System.ArgumentException. Multiple unmanaged resources need to be merged with a tool such as the Microsoft ResMerge utility (not supplied with the common language runtime SDK).
+ An assembly can be associated with only one unmanaged resource. This means that calling or after either one of the methods was called previously will throw the System.ArgumentException. Multiple unmanaged resources need to be merged with a tool such as the Microsoft ResMerge utility (not supplied with the common language runtime SDK).
Empty argument strings get written as a single space. Spaces are substituted for null characters in the argument strings.
@@ -1301,7 +1301,7 @@ The following code example shows how to define and use a dynamic assembly. The e
or after either one of the methods was called previously will throw the System.ArgumentException. Multiple unmanaged resources need to be merged with a tool such as the Microsoft `ResMerge` utility (not supplied with the common language runtime SDK).
+ An assembly can be associated with only one unmanaged resource. This means that calling or after either one of the methods was called previously will throw the System.ArgumentException. Multiple unmanaged resources need to be merged with a tool such as the Microsoft `ResMerge` utility (not supplied with the common language runtime SDK).
Empty argument strings get written as a single space. Spaces are substituted for null characters in the argument strings.
@@ -1633,7 +1633,7 @@ The following code example shows how to define and use a dynamic assembly. The e
and cannot be used in such cases, because they create instances of the attributes. Code in the reflection-only context cannot be executed. For more information and for example code, see the class.
+ Use this method to examine the custom attributes of code in the reflection-only context, in cases where the custom attributes themselves are defined in code that is loaded into the reflection-only context. Methods such as and cannot be used in such cases, because they create instances of the attributes. Code in the reflection-only context cannot be executed. For more information and for example code, see the class.
]]>
@@ -2400,7 +2400,7 @@ The following code example shows how to define and use a dynamic assembly. The e
## Remarks
This method does not return a complete list of referenced assemblies. For example, if you apply a custom attribute to the , the assembly in which the attribute was defined is included in the list returned by this method. However, if you use a object to specify the type of a method parameter, that type is not included.
- To get a complete list of referenced assemblies, save the assembly, load it into another application domain, and call the method.
+ To get a complete list of referenced assemblies, save the assembly, load it into another application domain, and call the method.
]]>
@@ -2525,7 +2525,7 @@ The following code example shows how to define and use a dynamic assembly. The e
## Remarks
Satellite assemblies contain localized resources, as distinct from main application assemblies, which contain non-localizable executable code and resources for a single culture that serve as the default or neutral culture.
- Call the overload to use your current assembly version.
+ Call the overload to use your current assembly version.
]]>
@@ -2601,7 +2601,7 @@ The following code example shows how to define and use a dynamic assembly. The e
method.
+ A type cannot be found until it has been created by calling the method.
]]>
@@ -3039,7 +3039,7 @@ The following code example shows how to define and use a dynamic assembly. The e
To emit a dynamic assembly in the reflection-only context, specify when you create the . If a dynamic assembly is emitted in the reflection-only context, its code cannot be executed.
> [!NOTE]
-> After you have saved a dynamic assembly to disk, you can use the method to load the completed assembly into the reflection-only context. However, the assembly can no longer be modified.
+> After you have saved a dynamic assembly to disk, you can use the method to load the completed assembly into the reflection-only context. However, the assembly can no longer be modified.
]]>
@@ -3102,11 +3102,11 @@ The following code example shows how to define and use a dynamic assembly. The e
This method saves all non-transient dynamic modules defined in this dynamic assembly. Transient dynamic modules are not saved. The assembly file name can be the same as the name of one of the modules. If so, the assembly manifest is stored within that module. `assemblyFileName` can be different from the names of all of the modules contained within the assembly. If so, the assembly file contains only the assembly manifest.
- For each obtained using , this method writes the .resources file and calls to close the stream.
+ For each obtained using , this method writes the .resources file and calls to close the stream.
- The `assemblyFileName` needs to be a simple file name without a drive or directory component. To create an assembly in a specific directory, use one of the methods that takes a target directory argument.
+ The `assemblyFileName` needs to be a simple file name without a drive or directory component. To create an assembly in a specific directory, use one of the methods that takes a target directory argument.
- In .NET Framework 2.0, this overload of the method is equivalent to calling the method overload with for the `portableExecutableKind` parameter and for the `imageFileMachine` parameter.
+ In .NET Framework 2.0, this overload of the method is equivalent to calling the method overload with for the `portableExecutableKind` parameter and for the `imageFileMachine` parameter.
## Examples
The following code sample creates a dynamic assembly and then persists it to a local disk using `Save`.
@@ -3193,9 +3193,9 @@ The following code example shows how to define and use a dynamic assembly. The e
This method saves all non-transient dynamic modules defined in this dynamic assembly. Transient dynamic modules are not saved. The assembly file name can be the same as the name of one of the module. If so, the assembly manifest is stored within that module. `assemblyFileName` can be different from the names of all of the modules contained within the assembly. If so, the assembly file contains only the assembly manifest.
- For each obtained using , this method writes the .resources file and calls to close the stream.
+ For each obtained using , this method writes the .resources file and calls to close the stream.
- The `assemblyFileName` needs to be a simple file name without a drive or directory component. To create an assembly in a specific directory, use one of the methods that takes a target directory argument.
+ The `assemblyFileName` needs to be a simple file name without a drive or directory component. To create an assembly in a specific directory, use one of the methods that takes a target directory argument.
]]>
@@ -3325,7 +3325,7 @@ The following code example shows how to define and use a dynamic assembly. The e
## Remarks
> [!NOTE]
-> cannot be used to set declarative security attributes. Use one of the overloads of that takes required, optional, and refused permissions.
+> cannot be used to set declarative security attributes. Use one of the overloads of that takes required, optional, and refused permissions.
## Examples
The following code sample illustrates the use of `SetCustomAttribute` within , using a .
@@ -3404,7 +3404,7 @@ For information on how to format `binaryAttribute`, see the metadata specificati
`RuntimeConstructorInfo` is a special type generated by the system. It derives from the class, and any object you obtain through reflection is actually an instance of `RuntimeConstructorInfo`.
> [!NOTE]
-> cannot be used to set declarative security attributes. Use one of the overloads of that takes required, optional, and refused permissions.
+> cannot be used to set declarative security attributes. Use one of the overloads of that takes required, optional, and refused permissions.
## Examples
The following code sample illustrates the use of `SetCustomAttribute` to attach a custom attribute to a dynamically generated assembly.
diff --git a/xml/System.Reflection.Emit/ConstructorBuilder.xml b/xml/System.Reflection.Emit/ConstructorBuilder.xml
index 6e00514b029..b13b034a5dc 100644
--- a/xml/System.Reflection.Emit/ConstructorBuilder.xml
+++ b/xml/System.Reflection.Emit/ConstructorBuilder.xml
@@ -80,15 +80,15 @@
is used to fully describe a constructor in Microsoft intermediate language (MSIL), including the name, attributes, signature, and constructor body. It is used in conjunction with the class to create classes at run time. Call to get an instance of .
+ is used to fully describe a constructor in Microsoft intermediate language (MSIL), including the name, attributes, signature, and constructor body. It is used in conjunction with the class to create classes at run time. Call to get an instance of .
If you do not define a constructor for your dynamic type, a parameterless constructor is provided automatically, and it calls the parameterless constructor of the base class.
If you use to define a constructor for your dynamic type, a parameterless constructor is not provided. You have the following options for providing a parameterless constructor in addition to the constructor you defined:
-- If you want a parameterless constructor that simply calls the parameterless constructor of the base class, you can use the method to create one (and optionally restrict access to it). Do not provide an implementation for this parameterless constructor. If you do, an exception is thrown when you try to use the constructor. No exception is thrown when the method is called.
+- If you want a parameterless constructor that simply calls the parameterless constructor of the base class, you can use the method to create one (and optionally restrict access to it). Do not provide an implementation for this parameterless constructor. If you do, an exception is thrown when you try to use the constructor. No exception is thrown when the method is called.
-- If you want a parameterless constructor that does something more than simply calling the parameterless constructor of the base class, or that calls another constructor of the base class, or that does something else entirely, you must use the method to create a , and provide your own implementation.
+- If you want a parameterless constructor that does something more than simply calling the parameterless constructor of the base class, or that calls another constructor of the base class, or that does something else entirely, you must use the method to create a , and provide your own implementation.
@@ -170,7 +170,7 @@
can be called several times, with each call specifying a security action (such as `Demand`, `Assert`, and `Deny`) and a set of permissions that the action applies to.
+ can be called several times, with each call specifying a security action (such as `Demand`, `Assert`, and `Deny`) and a set of permissions that the action applies to.
> [!NOTE]
> In the .NET Framework versions 1.0, 1.1, and 2.0, the declarative security attributes applied to a constructor by using this method are stored in the old XML metadata format. See Emitting Declarative Security Attributes.
@@ -512,7 +512,7 @@
## Remarks
The `inherit` parameter is ignored because a class never inherits constructors from base classes.
- To get the custom attributes, finish building the type by calling , retrieve the constructor by calling the method on the returned type, and then call the method on the returned .
+ To get the custom attributes, finish building the type by calling , retrieve the constructor by calling the method on the returned type, and then call the method on the returned .
]]>
@@ -569,7 +569,7 @@
## Remarks
The `inherit` parameter is ignored because a class never inherits constructors from base classes.
- To get the custom attributes, finish building the type by calling , retrieve the constructor by calling the method on the returned type, and then call the method on the returned .
+ To get the custom attributes, finish building the type by calling , retrieve the constructor by calling the method on the returned type, and then call the method on the returned .
]]>
@@ -874,7 +874,7 @@
method has been called. In the .NET Framework versions 1.0 and 1.1, is thrown. In the .NET Framework version 2.0, is thrown.
+ This property is not supported until after the method has been called. In the .NET Framework versions 1.0 and 1.1, is thrown. In the .NET Framework version 2.0, is thrown.
@@ -1365,7 +1365,7 @@
method.
+ This property returns the same value as the method.
]]>
diff --git a/xml/System.Reflection.Emit/CustomAttributeBuilder.xml b/xml/System.Reflection.Emit/CustomAttributeBuilder.xml
index 50007614512..f6ec7329951 100644
--- a/xml/System.Reflection.Emit/CustomAttributeBuilder.xml
+++ b/xml/System.Reflection.Emit/CustomAttributeBuilder.xml
@@ -76,7 +76,7 @@
and its argument. Then call on an `AssemblyBuilder` to establish the association.
+ Use the `CustomAttributeBuilder` object returned by the constructor to describe the custom attribute. Associate the `CustomAttribute` with a builder instance by calling the `SetCustomAttribute` method on that builder instance. For example, create a `CustomAttributeBuilder` to describe an instance of `AssemblyCultureAttribute` by supplying the constructor of and its argument. Then call on an `AssemblyBuilder` to establish the association.
@@ -243,7 +243,7 @@
The elements of the `constructorArgs` and `fieldValues` arrays are restricted to element types. They can be `byte`, `sbyte`, `int`, `uint`, `long`, `ulong`, `float`, `double`, `String`, `char`, `bool`, an enum, a type, any of the previous types that was cast to an object, or a single-dimension, zero-based array of any of the previous types.
> [!IMPORTANT]
-> Do not include private fields in `namedFields`. Doing so will cause to be thrown when the method is later called on the completed type.
+> Do not include private fields in `namedFields`. Doing so will cause to be thrown when the method is later called on the completed type.
]]>
@@ -343,7 +343,7 @@
The elements of the `constructorArgs` and `propertyValues` arrays are restricted to element types. They can be `byte`, `sbyte`, `int`, `uint`, `long`, `ulong`, `float`, `double`, `String`, `char`, `bool`, an enum, a type, any of the previous types that was cast to an object, or a single-dimension, zero-based array of any of the previous types.
> [!IMPORTANT]
-> Do not include private properties in `namedProperties`. Doing so will cause to be thrown when the method is later called on the completed type.
+> Do not include private properties in `namedProperties`. Doing so will cause to be thrown when the method is later called on the completed type.
]]>
@@ -458,7 +458,7 @@
The elements of the `constructorArgs`, `propertyValues`, or `fieldValues` arrays are restricted to element types. They can be `byte`, `sbyte`, `int`, `uint`, `long`, `ulong`, `float`, `double`, `String`, `char`, `bool`, an enum, a type, any of the previous types that was cast to an object, or a single-dimension, zero-based array of any of the previous types.
> [!IMPORTANT]
-> Do not include private properties or fields in `namedProperties` or `namedFields`. Doing so will cause to be thrown when the method is later called on the completed type.
+> Do not include private properties or fields in `namedProperties` or `namedFields`. Doing so will cause to be thrown when the method is later called on the completed type.
]]>
diff --git a/xml/System.Reflection.Emit/DynamicILInfo.xml b/xml/System.Reflection.Emit/DynamicILInfo.xml
index 1bfabac7bf7..d50aa913305 100644
--- a/xml/System.Reflection.Emit/DynamicILInfo.xml
+++ b/xml/System.Reflection.Emit/DynamicILInfo.xml
@@ -63,14 +63,14 @@
## Remarks
The class allows developers to write their own MSIL generators instead of using .
- To create instances of other types, call methods, and so on, the MSIL you generate must include tokens for those entities. The class provides several overloads of the method, which return tokens valid in the scope of the current . For example, if you need to call an overload of the method, you can obtain a for that overload and pass it to the method to obtain a token to embed in your MSIL.
+ To create instances of other types, call methods, and so on, the MSIL you generate must include tokens for those entities. The class provides several overloads of the method, which return tokens valid in the scope of the current . For example, if you need to call an overload of the method, you can obtain a for that overload and pass it to the method to obtain a token to embed in your MSIL.
- Once you have created arrays for your local variable signature, exceptions, and code body, you can use the , , and methods to insert them into the associated with your object.
+ Once you have created arrays for your local variable signature, exceptions, and code body, you can use the , , and methods to insert them into the associated with your object.
Generating your own metadata and MSIL requires familiarity with the Common Language Infrastructure (CLI) documentation, especially "Partition II: Metadata Definition and Semantics" and "Partition III: CIL Instruction Set". For more information, see [ECMA 335 Common Language Infrastructure (CLI)](https://www.ecma-international.org/publications-and-standards/standards/ecma-335/).
> [!NOTE]
-> Do not use to generate code that creates a delegate to another dynamic method by calling the delegate constructor directly. Instead, use the method to create the delegate. A delegate that is created with the delegate constructor does not have a reference to the target dynamic method. The dynamic method might be reclaimed by garbage collection while the delegate is still in use.
+> Do not use to generate code that creates a delegate to another dynamic method by calling the delegate constructor directly. Instead, use the method to create the delegate. A delegate that is created with the delegate constructor does not have a reference to the target dynamic method. The dynamic method might be reclaimed by garbage collection while the delegate is still in use.
]]>
@@ -276,7 +276,7 @@
object. Use the method to get a for the field you want to access, then use the property to get the .
+ You must obtain a token for any field that will be accessed by the dynamic method associated with the current object. Use the method to get a for the field you want to access, then use the property to get the .
]]>
@@ -332,10 +332,10 @@
object. Use the method to get a for the method you want to access, and then use the property to get the .
+ You must obtain a token for any method that will be accessed by the dynamic method associated with the current object. Use the method to get a for the method you want to access, and then use the property to get the .
> [!NOTE]
-> For a method that belongs to a generic type, use the method overload and specify a for the generic type.
+> For a method that belongs to a generic type, use the method overload and specify a for the generic type.
]]>
@@ -481,7 +481,7 @@
object. Use the method to get a for the field you want to access, and then use the property to get the .
+ You must obtain a token for any field that will be accessed by the dynamic method associated with the current object. Use the method to get a for the field you want to access, and then use the property to get the .
]]>
@@ -533,7 +533,7 @@
object. Use the method to get a for the method you want to call, and then use the property to get the .
+ You must obtain a token for any method that will be called by the dynamic method associated with the current object. Use the method to get a for the method you want to call, and then use the property to get the .
]]>
@@ -855,7 +855,7 @@
method to get a for the local signature.
+ The local variable signature describes the layout of a method's local variables. To simplify construction of the local variable signature, use the `static` (`Shared` in Visual Basic) method to get a for the local signature.
For information on local variable signatures, see the Common Language Infrastructure (CLI) documentation, especially "Partition II: Metadata Definition and Semantics". For more information, see [ECMA 335 Common Language Infrastructure (CLI)](https://www.ecma-international.org/publications-and-standards/standards/ecma-335/).
@@ -917,7 +917,7 @@
method to get a for the local signature.
+ The local variable signature describes the layout of a method's local variables. To simplify construction of the local variable signature, use the `static` (`Shared` in Visual Basic) method to get a for the local signature.
For information on local variable signatures, see the Common Language Infrastructure (CLI) documentation, especially "Partition II: Metadata Definition and Semantics". For more information, see [ECMA 335 Common Language Infrastructure (CLI)](https://www.ecma-international.org/publications-and-standards/standards/ecma-335/).
diff --git a/xml/System.Reflection.Emit/DynamicMethod.xml b/xml/System.Reflection.Emit/DynamicMethod.xml
index 80505153580..8d5130c7800 100644
--- a/xml/System.Reflection.Emit/DynamicMethod.xml
+++ b/xml/System.Reflection.Emit/DynamicMethod.xml
@@ -57,7 +57,7 @@
For more information about this API, see Supplemental API remarks for DynamicMethod.
method.
+The following code example creates a dynamic method that takes two parameters. The example emits a simple function body that prints the first parameter to the console, and the example uses the second parameter as the return value of the method. The example completes the method by creating a delegate, invokes the delegate with different parameters, and finally invokes the dynamic method using the method.
:::code language="csharp" source="~/snippets/csharp/System.Reflection.Emit/DynamicMethod/Overview/source.cs" id="Snippet1":::
:::code language="vb" source="~/snippets/visualbasic/System.Reflection.Emit/DynamicMethod/Overview/source.vb" id="Snippet1":::
@@ -151,7 +151,7 @@ The following code example creates a dynamic method that takes two parameters. T
## Remarks
The dynamic method that is created by this constructor is associated with an anonymous assembly instead of an existing type or module. The anonymous assembly exists only to provide a sandbox environment for dynamic methods, that is, to isolate them from other code. This environment makes it safe for the dynamic method to be emitted and executed by partially trusted code.
- This constructor specifies that just-in-time (JIT) visibility checks will be enforced for the Microsoft intermediate language (MSIL) of the dynamic method. That is, the code in the dynamic method has access to public methods of public classes. Exceptions are thrown if the method tries to access types or members that are `private`, `protected`, or `internal` (`Friend` in Visual Basic). To create a dynamic method that has restricted ability to skip JIT visibility checks, use the constructor.
+ This constructor specifies that just-in-time (JIT) visibility checks will be enforced for the Microsoft intermediate language (MSIL) of the dynamic method. That is, the code in the dynamic method has access to public methods of public classes. Exceptions are thrown if the method tries to access types or members that are `private`, `protected`, or `internal` (`Friend` in Visual Basic). To create a dynamic method that has restricted ability to skip JIT visibility checks, use the constructor.
When an anonymously hosted dynamic method is constructed, the call stack of the emitting assembly is included. When the method is invoked, the permissions of the emitting assembly are used instead of the permissions of the actual caller. Thus, the dynamic method cannot execute at a higher level of privilege than that of the assembly that emitted it, even if it is passed to and executed by an assembly that has a higher trust level.
@@ -257,7 +257,7 @@ The following code example creates a dynamic method that takes two parameters. T
- The call stack that emits the dynamic method is granted with the flag. This is always true when the code is executed with full trust. For partially trusted code, it is true only if the host explicitly grants the permission.
> [!IMPORTANT]
- > If the permission has not been granted, a security exception is thrown when is called or when the dynamic method is invoked, not when this constructor is called. No special permissions are required to emit the dynamic method.
+ > If the permission has not been granted, a security exception is thrown when is called or when the dynamic method is invoked, not when this constructor is called. No special permissions are required to emit the dynamic method.
For example, a dynamic method that is created with `restrictedSkipVisibility` set to `true` can access a private member of any assembly on the call stack if the call stack has been granted restricted member access. If the dynamic method is created with partially trusted code on the call stack, it cannot access a private member of a type in a .NET Framework assembly, because such assemblies are fully trusted.
@@ -363,7 +363,7 @@ The following code example creates a dynamic method that takes two parameters. T
> For backward compatibility, this constructor demands with the flag if the following conditions are both true: `m` is a module other than the calling module, and the demand for with the flag has failed. If the demand for succeeds, the operation is allowed.
## Examples
- The following code example creates a dynamic method that takes two parameters. The example emits a simple function body that prints the first parameter to the console, and the example uses the second parameter as the return value of the method. The example completes the method by creating a delegate, invokes the delegate with different parameters, and finally invokes the dynamic method using the method.
+ The following code example creates a dynamic method that takes two parameters. The example emits a simple function body that prints the first parameter to the console, and the example uses the second parameter as the return value of the method. The example completes the method by creating a delegate, invokes the delegate with different parameters, and finally invokes the dynamic method using the method.
:::code language="csharp" source="~/snippets/csharp/System.Reflection.Emit/DynamicMethod/.ctor/source1.cs" id="Snippet1":::
:::code language="vb" source="~/snippets/visualbasic/System.Reflection.Emit/DynamicMethod/.ctor/source1.vb" id="Snippet1":::
@@ -477,10 +477,10 @@ The following code example creates a dynamic method that takes two parameters. T
> [!NOTE]
> In general, changing the internal fields of classes is not good object-oriented coding practice.
- The example code creates an instance of `Example` and then creates two delegates. The first is of type `UseLikeStatic`, which has the same parameters as the dynamic method. The second is of type `UseLikeInstance`, which lacks the first parameter (of type `Example`). This delegate is created using the method overload; the second parameter of that method overload is an instance of `Example`, in this case the instance just created, which is bound to the newly created delegate. Whenever that delegate is invoked, the dynamic method acts on the bound instance of `Example`.
+ The example code creates an instance of `Example` and then creates two delegates. The first is of type `UseLikeStatic`, which has the same parameters as the dynamic method. The second is of type `UseLikeInstance`, which lacks the first parameter (of type `Example`). This delegate is created using the method overload; the second parameter of that method overload is an instance of `Example`, in this case the instance just created, which is bound to the newly created delegate. Whenever that delegate is invoked, the dynamic method acts on the bound instance of `Example`.
> [!NOTE]
-> This is an example of the relaxed rules for delegate binding introduced in .NET Framework 2.0, along with new overloads of the method. For more information, see the class.
+> This is an example of the relaxed rules for delegate binding introduced in .NET Framework 2.0, along with new overloads of the method. For more information, see the class.
The `UseLikeStatic` delegate is invoked, passing in the instance of `Example` that is bound to the `UseLikeInstance` delegate. Then the `UseLikeInstance` delegate is invoked, so that both delegates act on the same instance of `Example`. The changes in the values of the internal field are displayed after each call. Finally, a `UseLikeInstance` delegate is bound to an instance of `DerivedFromExample`, and the delegate calls are repeated.
@@ -1121,14 +1121,14 @@ The following code example creates a dynamic method that takes two parameters. T
method or the method completes the dynamic method. Any further attempt to alter the dynamic method, such as modifying parameter definitions or emitting more Microsoft intermediate language (MSIL), is ignored; no exception is thrown.
+ Calling the method or the method completes the dynamic method. Any further attempt to alter the dynamic method, such as modifying parameter definitions or emitting more Microsoft intermediate language (MSIL), is ignored; no exception is thrown.
- To create a method body for a dynamic method when you have your own MSIL generator, call the method to obtain a object. If you do not have your own MSIL generator, call the method to obtain an object that can be used to generate the method body.
+ To create a method body for a dynamic method when you have your own MSIL generator, call the method to obtain a object. If you do not have your own MSIL generator, call the method to obtain an object that can be used to generate the method body.
## Examples
- The following code example creates a dynamic method that takes two parameters. The example emits a simple function body that prints the first parameter to the console, and the example uses the second parameter as the return value of the method. The example completes the method by creating a delegate, invokes the delegate with different parameters, and finally invokes the dynamic method using the method.
+ The following code example creates a dynamic method that takes two parameters. The example emits a simple function body that prints the first parameter to the console, and the example uses the second parameter as the return value of the method. The example completes the method by creating a delegate, invokes the delegate with different parameters, and finally invokes the dynamic method using the method.
:::code language="csharp" source="~/snippets/csharp/System.Reflection.Emit/DynamicMethod/.ctor/source1.cs" id="Snippet1":::
:::code language="vb" source="~/snippets/visualbasic/System.Reflection.Emit/DynamicMethod/.ctor/source1.vb" id="Snippet1":::
@@ -1216,9 +1216,9 @@ The following code example creates a dynamic method that takes two parameters. T
This method overload requires `target` to be of the same type as the first parameter of the dynamic method, or to be assignable to that type (for example, a derived class). The signature of `delegateType` has all the parameters of the dynamic method except the first. For example, if the dynamic method has the parameters , , and , then `delegateType` has the parameters and ; `target` is of type .
- Calling the method or the method completes the dynamic method. Any further attempt to alter the dynamic method, such as modifying parameter definitions or emitting more Microsoft intermediate language (MSIL), is ignored; no exception is thrown.
+ Calling the method or the method completes the dynamic method. Any further attempt to alter the dynamic method, such as modifying parameter definitions or emitting more Microsoft intermediate language (MSIL), is ignored; no exception is thrown.
- To create a method body for a dynamic method when you have your own MSIL generator, call the method to obtain a object. If you do not have your own MSIL generator, call the method to obtain an object that can be used to generate the method body.
+ To create a method body for a dynamic method when you have your own MSIL generator, call the method to obtain a object. If you do not have your own MSIL generator, call the method to obtain an object that can be used to generate the method body.
@@ -1232,10 +1232,10 @@ The following code example creates a dynamic method that takes two parameters. T
> [!NOTE]
> In general, changing the internal fields of classes is not good object-oriented coding practice.
- The example code creates an instance of `Example` and then creates two delegates. The first is of type `UseLikeStatic`, which has the same parameters as the dynamic method. The second is of type `UseLikeInstance`, which lacks the first parameter (of type `Example`). This delegate is created using the method overload; the second parameter of that method overload is an instance of `Example`, in this case the instance just created, which is bound to the newly created delegate. Whenever that delegate is invoked, the dynamic method acts on the bound instance of `Example`.
+ The example code creates an instance of `Example` and then creates two delegates. The first is of type `UseLikeStatic`, which has the same parameters as the dynamic method. The second is of type `UseLikeInstance`, which lacks the first parameter (of type `Example`). This delegate is created using the method overload; the second parameter of that method overload is an instance of `Example`, in this case the instance just created, which is bound to the newly created delegate. Whenever that delegate is invoked, the dynamic method acts on the bound instance of `Example`.
> [!NOTE]
-> This is an example of the relaxed rules for delegate binding introduced in .NET Framework 2.0, along with new overloads of the method. For more information, see the class.
+> This is an example of the relaxed rules for delegate binding introduced in .NET Framework 2.0, along with new overloads of the method. For more information, see the class.
The `UseLikeStatic` delegate is invoked, passing in the instance of `Example` that is bound to the `UseLikeInstance` delegate. Then the `UseLikeInstance` delegate is invoked, so that both delegates act on the same instance of `Example`. The changes in the values of the internal field are displayed after each call. Finally, a `UseLikeInstance` delegate is bound to an instance of `DerivedFromExample`, and the delegate calls are repeated.
@@ -1365,9 +1365,9 @@ The following code example creates a dynamic method that takes two parameters. T
method refers to the return value. Setting parameter information has no effect on the return value.
+ If `position` is 0, the method refers to the return value. Setting parameter information has no effect on the return value.
- If the dynamic method has already been completed, by calling the or method, the method has no effect. No exception is thrown.
+ If the dynamic method has already been completed, by calling the or method, the method has no effect. No exception is thrown.
@@ -1497,7 +1497,7 @@ The following code example creates a dynamic method that takes two parameters. T
For dynamic methods, specifying `true` for `inherit` has no effect, because the method is not declared in a type.
> [!NOTE]
-> Custom attributes are not currently supported on dynamic methods. The only attribute returned is ; you can get the method implementation flags more easily using the method.
+> Custom attributes are not currently supported on dynamic methods. The only attribute returned is ; you can get the method implementation flags more easily using the method.
]]>
@@ -1555,7 +1555,7 @@ The following code example creates a dynamic method that takes two parameters. T
For dynamic methods, specifying `true` for `inherit` has no effect, because the method is not declared in a type.
> [!NOTE]
-> Custom attributes are not currently supported on dynamic methods. The only attribute returned is ; you can get the method implementation flags more easily using the method.
+> Custom attributes are not currently supported on dynamic methods. The only attribute returned is ; you can get the method implementation flags more easily using the method.
]]>
@@ -1671,7 +1671,7 @@ The following code example creates a dynamic method that takes two parameters. T
or method, any further attempt to add MSIL is ignored. No exception is thrown.
+ After a dynamic method has been completed, by calling the or method, any further attempt to add MSIL is ignored. No exception is thrown.
> [!NOTE]
> There are restrictions on unverifiable code in dynamic methods, even in some full-trust scenarios. See the "Verification" section in Remarks for .
@@ -1679,7 +1679,7 @@ The following code example creates a dynamic method that takes two parameters. T
## Examples
- The following code example creates a dynamic method that takes two parameters. The example emits a simple function body that prints the first parameter to the console, and the example uses the second parameter as the return value of the method. The example completes the method by creating a delegate, invokes the delegate with different parameters, and finally invokes the dynamic method using the method.
+ The following code example creates a dynamic method that takes two parameters. The example emits a simple function body that prints the first parameter to the console, and the example uses the second parameter as the return value of the method. The example completes the method by creating a delegate, invokes the delegate with different parameters, and finally invokes the dynamic method using the method.
:::code language="csharp" source="~/snippets/csharp/System.Reflection.Emit/DynamicMethod/.ctor/source1.cs" id="Snippet1":::
:::code language="vb" source="~/snippets/visualbasic/System.Reflection.Emit/DynamicMethod/.ctor/source1.vb" id="Snippet1":::
@@ -1741,7 +1741,7 @@ The following code example creates a dynamic method that takes two parameters. T
or method, any further attempt to add MSIL is ignored. No exception is thrown.
+ After a dynamic method has been completed, by calling the or method, any further attempt to add MSIL is ignored. No exception is thrown.
> [!NOTE]
> There are restrictions on unverifiable code in dynamic methods, even in some full-trust scenarios. See the "Verification" section in Remarks for .
@@ -1850,7 +1850,7 @@ The following code example creates a dynamic method that takes two parameters. T
objects returned by this method are for information only. Use the method to set or change the characteristics of the parameters.
+ The objects returned by this method are for information only. Use the method to set or change the characteristics of the parameters.
@@ -1984,16 +1984,16 @@ The following code example creates a dynamic method that takes two parameters. T
## Remarks
In addition to the listed exceptions, the calling code should be prepared to catch any exceptions thrown by the dynamic method.
- Executing a dynamic method with a delegate created by the method is more efficient than executing it with the method.
+ Executing a dynamic method with a delegate created by the method is more efficient than executing it with the method.
- Calling the method or the method completes the dynamic method. Any further attempt to alter the dynamic method, such as modifying parameter definitions or emitting more Microsoft intermediate language (MSIL), is ignored; no exception is thrown.
+ Calling the method or the method completes the dynamic method. Any further attempt to alter the dynamic method, such as modifying parameter definitions or emitting more Microsoft intermediate language (MSIL), is ignored; no exception is thrown.
- All dynamic methods are static, so the `obj` parameter is always ignored. To treat a dynamic method as if it were an instance method, use the overload that takes an object instance.
+ All dynamic methods are static, so the `obj` parameter is always ignored. To treat a dynamic method as if it were an instance method, use the overload that takes an object instance.
If the dynamic method has no parameters, the value of `parameters` should be `null`. Otherwise the number, type, and order of elements in the parameters array should be identical to the number, type, and order of parameters of the dynamic method.
> [!NOTE]
-> This method overload is called by the method overload inherited from the class, so the preceding remarks apply to both overloads.
+> This method overload is called by the method overload inherited from the class, so the preceding remarks apply to both overloads.
This method does not demand permissions directly, but invoking the dynamic method can result in security demands, depending on the method. For example, no demands are made for anonymously hosted dynamic methods that are created with the `restrictedSkipVisibility` parameter set to `false`. On the other hand, if you create a method with `restrictedSkipVisibility` set to `true` so it can access a hidden member of a target assembly, the method will cause a demand for the permissions of the target assembly plus with the flag.
@@ -2123,7 +2123,7 @@ The following code example creates a dynamic method that takes two parameters. T
, , and properties report the transparency level of the dynamic method as determined by the common language runtime (CLR). The combinations of these properties are shown in the following table:
+ The , , and properties report the transparency level of the dynamic method as determined by the common language runtime (CLR). The combinations of these properties are shown in the following table:
|Security level|IsSecurityCritical|IsSecuritySafeCritical|IsSecurityTransparent|
|--------------------|------------------------|----------------------------|---------------------------|
@@ -2211,7 +2211,7 @@ The following code example creates a dynamic method that takes two parameters. T
, , and properties report the transparency level of the dynamic method as determined by the common language runtime (CLR). The combinations of these properties are shown in the following table:
+ The , , and properties report the transparency level of the dynamic method as determined by the common language runtime (CLR). The combinations of these properties are shown in the following table:
|Security level|IsSecurityCritical|IsSecuritySafeCritical|IsSecurityTransparent|
|--------------------|------------------------|----------------------------|---------------------------|
@@ -2299,7 +2299,7 @@ The following code example creates a dynamic method that takes two parameters. T
, , and properties report the transparency level of the dynamic method as determined by the common language runtime (CLR). The combinations of these properties are shown in the following table:
+ The , , and properties report the transparency level of the dynamic method as determined by the common language runtime (CLR). The combinations of these properties are shown in the following table:
|Security level|IsSecurityCritical|IsSecuritySafeCritical|IsSecurityTransparent|
|--------------------|------------------------|----------------------------|---------------------------|
@@ -2727,7 +2727,7 @@ The following code example creates a dynamic method that takes two parameters. T
method is always empty.
+ Custom attributes are not supported on the return type of a dynamic method, so the array of custom attributes returned by the method is always empty.
@@ -2790,7 +2790,7 @@ The following code example creates a dynamic method that takes two parameters. T
## Examples
- The following code example displays the method of a dynamic method. This code example is part of a larger example provided for the class.
+ The following code example displays the method of a dynamic method. This code example is part of a larger example provided for the class.
:::code language="csharp" source="~/snippets/csharp/System.Reflection.Emit/DynamicMethod/Overview/source.cs" id="Snippet32":::
:::code language="vb" source="~/snippets/visualbasic/System.Reflection.Emit/DynamicMethod/Overview/source.vb" id="Snippet32":::
diff --git a/xml/System.Reflection.Emit/EnumBuilder.xml b/xml/System.Reflection.Emit/EnumBuilder.xml
index 214e4d4fe5f..1f266c8f1b9 100644
--- a/xml/System.Reflection.Emit/EnumBuilder.xml
+++ b/xml/System.Reflection.Emit/EnumBuilder.xml
@@ -1026,7 +1026,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the constructor of a finished type, you can retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -1089,7 +1089,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
and call on the returned .
+ As a workaround, to retrieve the custom attributes of a finished type, retrieve the type using and call on the returned .
The following code sample illustrates the use of `GetCustomAttribute` in the context of .
@@ -1149,7 +1149,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
and call on the returned .
+ As a workaround, to retrieve the custom attributes of a finished type, retrieve the type using and call on the returned .
The following code sample illustrates the use of `GetCustomAttribute` in the context of .
@@ -1307,7 +1307,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the event of a finished type, retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -1373,7 +1373,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the events of a finished type, retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -1432,7 +1432,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type to retrieve the events.
+ As a workaround, to retrieve the events of a finished type, retrieve the type using or and use reflection on the retrieved type to retrieve the events.
]]>
@@ -1500,7 +1500,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the field of a finished type, retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -1559,9 +1559,9 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the field of a finished type, retrieve the type using or and use reflection on the retrieved type.
- The method does not return fields in a particular order, such as alphabetical or declaration order. Your code must not depend on the order in which fields are returned, because that order can vary.
+ The method does not return fields in a particular order, such as alphabetical or declaration order. Your code must not depend on the order in which fields are returned, because that order can vary.
]]>
@@ -1689,7 +1689,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the interface of a finished type, retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -1755,7 +1755,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the interface mapping types of a finished type, retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -1811,7 +1811,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the interface of a finished type, retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -1877,7 +1877,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the member of a finished type, retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -1940,7 +1940,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the members of a finished type, retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -2091,7 +2091,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the methods of a finished type, retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -2163,7 +2163,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the nested type of a finished type, retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -2224,7 +2224,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the nested types of a finished type, retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -2283,7 +2283,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ As a workaround, to retrieve the properties of a finished type, retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -2554,7 +2554,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
or and use reflection on the retrieved type.
+ You can retrieve the type using or and use reflection on the retrieved type.
]]>
@@ -2862,7 +2862,7 @@ The following code sample demonstrates the use of the `AssemblyQualifiedName` pr
and call on the returned .
+ As a workaround, to check if a custom attribute is defined for a finished type, retrieve the type using and call on the returned .
]]>
@@ -4100,7 +4100,7 @@ For information on how to format `binaryAttribute`, see the metadata specificati
or and use reflection on the retrieved type.
+ You can retrieve the type using or and use reflection on the retrieved type.
Use this handle to access the underlying metadata handle.
diff --git a/xml/System.Reflection.Emit/EventToken.xml b/xml/System.Reflection.Emit/EventToken.xml
index 5af7717eb95..6851727a84a 100644
--- a/xml/System.Reflection.Emit/EventToken.xml
+++ b/xml/System.Reflection.Emit/EventToken.xml
@@ -194,7 +194,7 @@
if is equal to ; otherwise, .
- .]]>
+ .]]>
@@ -229,7 +229,7 @@
if is not equal to ; otherwise, .
- .]]>
+ .]]>
diff --git a/xml/System.Reflection.Emit/FieldBuilder.xml b/xml/System.Reflection.Emit/FieldBuilder.xml
index 6cc8870c6e4..ea6292017a6 100644
--- a/xml/System.Reflection.Emit/FieldBuilder.xml
+++ b/xml/System.Reflection.Emit/FieldBuilder.xml
@@ -80,10 +80,10 @@
, , or .
+ Get an instance of `FieldBuilder` by calling , , or .
> [!NOTE]
-> The method is currently not supported. As a workaround, retrieve the by reflecting on the finished type and call to set the value of the field.
+> The method is currently not supported. As a workaround, retrieve the by reflecting on the finished type and call to set the value of the field.
@@ -494,7 +494,7 @@
## Remarks
If the field is `static`, the `obj` parameter is ignored. For non-static fields, `obj` should be an instance of a class that inherits or declares the field.
- The return type of is . For example, if the field holds a Boolean primitive value, an instance of with the appropriate Boolean value is returned. Before returning the value, checks to see if the user has access permission.
+ The return type of is . For example, if the field holds a Boolean primitive value, an instance of with the appropriate Boolean value is returned. Before returning the value, checks to see if the user has access permission.
Access restrictions are ignored for fully-trusted code. `Private` constructors, methods, fields, and properties can be accessed and invoked using Reflection whenever the code is fully-trusted.
@@ -1225,12 +1225,12 @@ For information on how to format `binaryAttribute`, see the metadata specificati
## Remarks
This method will assign the `val` parameter to the field reflected by this instance on `obj`. If the field is static, `obj` will be ignored. For non-static fields, `obj` should be an instance of a class that inherits or declares the field.
- The new value is passed as an . For example, if the field's type is Boolean, an instance of with the appropriate Boolean value is passed. Before setting the value, checks to see if the user has access permission.
+ The new value is passed as an . For example, if the field's type is Boolean, an instance of with the appropriate Boolean value is passed. Before setting the value, checks to see if the user has access permission.
Access restrictions are ignored for fully-trusted code. `Private` constructors, methods, fields, and properties can be accessed and invoked using Reflection whenever the code is fully-trusted.
> [!NOTE]
-> This method is currently not supported. As a workaround, retrieve the by reflecting on the finished type and call to set the value of the field.
+> This method is currently not supported. As a workaround, retrieve the by reflecting on the finished type and call to set the value of the field.
]]>
diff --git a/xml/System.Reflection.Emit/FieldToken.xml b/xml/System.Reflection.Emit/FieldToken.xml
index da3d7a27fcf..143ef91dbfb 100644
--- a/xml/System.Reflection.Emit/FieldToken.xml
+++ b/xml/System.Reflection.Emit/FieldToken.xml
@@ -194,7 +194,7 @@
if is equal to ; otherwise, .
- .]]>
+ .]]>
@@ -229,7 +229,7 @@
if is not equal to ; otherwise, .
- .]]>
+ .]]>
diff --git a/xml/System.Reflection.Emit/GenericTypeParameterBuilder.xml b/xml/System.Reflection.Emit/GenericTypeParameterBuilder.xml
index ec45666656b..450df2776e9 100644
--- a/xml/System.Reflection.Emit/GenericTypeParameterBuilder.xml
+++ b/xml/System.Reflection.Emit/GenericTypeParameterBuilder.xml
@@ -68,15 +68,15 @@
objects by using the method to add type parameters to a dynamic type, thus making it a generic type, or by using the method to add type parameters to a dynamic method. Use the objects to add constraints to the type parameters. Constraints are of three kinds:
+ You can get an array of objects by using the method to add type parameters to a dynamic type, thus making it a generic type, or by using the method to add type parameters to a dynamic method. Use the objects to add constraints to the type parameters. Constraints are of three kinds:
-- The base type constraint specifies that any type assigned to the generic type parameter must derive from a particular base type. Set this constraint by using the method.
+- The base type constraint specifies that any type assigned to the generic type parameter must derive from a particular base type. Set this constraint by using the method.
-- An interface constraint specifies that any type assigned to the generic type parameter must implement a particular interface. Set the interface constraints by using the method.
+- An interface constraint specifies that any type assigned to the generic type parameter must implement a particular interface. Set the interface constraints by using the method.
-- Special constraints specify that any type assigned to the generic type parameter must have a parameterless constructor, must be a reference type, or must be a value type. Set the special constraints for a type parameter by using the method.
+- Special constraints specify that any type assigned to the generic type parameter must have a parameterless constructor, must be a reference type, or must be a value type. Set the special constraints for a type parameter by using the method.
- Interface constraints and special constraints cannot be retrieved using methods of the class. Once you have created the generic type that contains the type parameters, you can use its object to reflect the constraints. Use the method to get the type parameters, and for each type parameter use the method to get the base type constraint and interface constraints, and the property to get the special constraints.
+ Interface constraints and special constraints cannot be retrieved using methods of the class. Once you have created the generic type that contains the type parameters, you can use its object to reflect the constraints. Use the method to get the type parameters, and for each type parameter use the method to get the base type constraint and interface constraints, and the property to get the special constraints.
@@ -292,7 +292,7 @@
method.
+ To set the base type constraint, use the method.
]]>
@@ -3327,7 +3327,7 @@
method provides a way to generate array types for parameter lists.
+ The method provides a way to generate array types for parameter lists.
@@ -3395,7 +3395,7 @@
method provides a way to generate array types for parameter lists.
+ The method provides a way to generate array types for parameter lists.
@@ -3456,7 +3456,7 @@
method provides a way to generate `ref` types (`ByRef` in Visual Basic) for parameter lists.
+ The method provides a way to generate `ref` types (`ByRef` in Visual Basic) for parameter lists.
@@ -3578,7 +3578,7 @@
method provides a way to generate pointer types for parameter lists.
+ The method provides a way to generate pointer types for parameter lists.
@@ -3871,7 +3871,7 @@
## Remarks
To retrieve the base type constraint use the property.
- Once you have created the generic type that contains the type parameter, you can use its object to reflect the type parameter and their constraints. To get the type parameters of a completed generic type, use the method. For each type parameter, get the base type constraint and interface constraints by using the method, and get the special constraints by using the property.
+ Once you have created the generic type that contains the type parameter, you can use its object to reflect the type parameter and their constraints. To get the type parameters of a completed generic type, use the method. For each type parameter, get the base type constraint and interface constraints by using the method, and get the special constraints by using the property.
@@ -4125,7 +4125,7 @@ For information on how to format `binaryAttribute`, see the metadata specificati
## Remarks
Special constraints can specify that any type assigned to the generic type parameter must have a parameterless constructor, must be a reference type, or must be a value type.
- Special constraints cannot be retrieved using methods of the class. Once you have created the generic type that contains the type parameter, you can use its object to reflect the type parameters and their constraints. To get the type parameters of a completed generic type, use the method. To get the special constraints for each type parameter, use the property.
+ Special constraints cannot be retrieved using methods of the class. Once you have created the generic type that contains the type parameter, you can use its object to reflect the type parameters and their constraints. To get the type parameters of a completed generic type, use the method. To get the special constraints for each type parameter, use the property.
The enumeration values that refer to the variance characteristics of a type parameter are relevant only in languages that support covariance and contravariance, such as Microsoft intermediate language (MSIL). Visual Basic and C# currently do not support covariance and contravariance.
@@ -4239,7 +4239,7 @@ For information on how to format `binaryAttribute`, see the metadata specificati
class. Once you have created the generic type that contains the type parameter, you can use its object to reflect the type parameters and their constraints. To get the type parameters of a completed generic type, use the method. For each type parameter, get the base type constraint and interface constraints by using the method.
+ Interface constraints cannot be retrieved using methods of the class. Once you have created the generic type that contains the type parameter, you can use its object to reflect the type parameters and their constraints. To get the type parameters of a completed generic type, use the method. For each type parameter, get the base type constraint and interface constraints by using the method.
diff --git a/xml/System.Reflection.Emit/ILGenerator.xml b/xml/System.Reflection.Emit/ILGenerator.xml
index 88fa607d435..854f6da9615 100644
--- a/xml/System.Reflection.Emit/ILGenerator.xml
+++ b/xml/System.Reflection.Emit/ILGenerator.xml
@@ -80,7 +80,7 @@
is used to generate method bodies for methods and constructors in dynamic assemblies (represented by the and classes) and for standalone dynamic methods (represented by the class). To obtain an , use the , , and methods.
+ is used to generate method bodies for methods and constructors in dynamic assemblies (represented by the and classes) and for standalone dynamic methods (represented by the class). To obtain an , use the , , and methods.
MSIL is used as input to a just-in-time (JIT) compiler.
@@ -484,7 +484,7 @@
are scoped until the corresponding is called.
+ This method is used to emit symbolic information. Local variables declared after are scoped until the corresponding is called.
If the current