Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hide TypeInfo and references to it #89975

Closed
steveharter opened this issue Aug 3, 2023 · 3 comments · Fixed by #111079
Closed

Hide TypeInfo and references to it #89975

steveharter opened this issue Aug 3, 2023 · 3 comments · Fixed by #111079
Labels
api-approved API was approved in API review, it can be implemented area-System.Reflection help wanted [up-for-grabs] Good issue for external contributors in-pr There is an active PR which will close this issue when it is merged
Milestone

Comments

@steveharter
Copy link
Member

steveharter commented Aug 3, 2023

Address additional feedback from #53217 (comment):

Have we considered hiding TypeInfo as well?
What about all the other reflection additions we did for Win8, such as

  • System.Reflection.AssemblyExtensions
  • System.Reflection.CustomAttributeExtensions
  • System.Reflection.CustomAttributeExtensions
  • System.Reflection.EventInfoExtensions
  • System.Reflection.MemberInfoExtensions
  • System.Reflection.MethodInfoExtensions
  • System.Reflection.ModuleExtensions
  • System.Reflection.RuntimeReflectionExtensions
  • System.Reflection.TypeExtensions_

Note that in all cases below the [EditorBrowsable] can be added to the class since all of the methods also have that attribute.

+[EditorBrowsable(EditorBrowsableState.Never)]
public static partial class RuntimeReflectionExtensions
{
+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static IEnumerable<FieldInfo> GetRuntimeFields([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.NonPublicFields)] this Type type);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static IEnumerable<MethodInfo> GetRuntimeMethods([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] this Type type);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static IEnumerable<PropertyInfo> GetRuntimeProperties([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties | DynamicallyAccessedMemberTypes.NonPublicProperties)] this Type type);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static IEnumerable<EventInfo> GetRuntimeEvents([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.NonPublicEvents)] this Type type);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static FieldInfo? GetRuntimeField([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] this Type type, string name);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRuntimeMethod([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] this Type type, string name, Type[] parameters);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo? GetRuntimeProperty([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static EventInfo? GetRuntimeEvent([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents)] this Type type, string name);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRuntimeBaseDefinition(this MethodInfo method);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static InterfaceMapping GetRuntimeInterfaceMap(this TypeInfo typeInfo, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] Type interfaceType);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo GetMethodInfo(this Delegate del);
}

and for System.Reflection.TypeExtensions.dll:

namespace System.Reflection;

+[EditorBrowsable(EditorBrowsableState.Never)]
public static class AssemblyExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Type[] GetExportedTypes(this Assembly assembly);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Module[] GetModules(this Assembly assembly);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Type[] GetTypes(this Assembly assembly);
}

+[EditorBrowsable(EditorBrowsableState.Never)]
public static class EventInfoExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetAddMethod(this EventInfo eventInfo);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetAddMethod(this EventInfo eventInfo, bool nonPublic);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRaiseMethod(this EventInfo eventInfo);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRaiseMethod(this EventInfo eventInfo, bool nonPublic);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRemoveMethod(this EventInfo eventInfo);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRemoveMethod(this EventInfo eventInfo, bool nonPublic);
}

+[EditorBrowsable(EditorBrowsableState.Never)]
public static class MemberInfoExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static int GetMetadataToken(this MemberInfo member);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static bool HasMetadataToken(this MemberInfo member);
}

+[EditorBrowsable(EditorBrowsableState.Never)]
public static class MethodInfoExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo GetBaseDefinition(this MethodInfo method);
}

+[EditorBrowsable(EditorBrowsableState.Never)]
public static partial class ModuleExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static System.Guid GetModuleVersionId(this Module module);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static bool HasModuleVersionId(this Module module);
}

+[EditorBrowsable(EditorBrowsableState.Never)]
public static class PropertyInfoExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo[] GetAccessors(this PropertyInfo property);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo[] GetAccessors(this PropertyInfo property, bool nonPublic);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetGetMethod(this PropertyInfo property);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetGetMethod(this PropertyInfo property, bool nonPublic);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetSetMethod(this PropertyInfo property);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetSetMethod(this PropertyInfo property, bool nonPublic);
}

+[EditorBrowsable(EditorBrowsableState.Never)]
public static class TypeExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static ConstructorInfo? GetConstructor([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] this Type type, Type[] types);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static ConstructorInfo[] GetConstructors([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static ConstructorInfo[] GetConstructors([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicConstructors | DynamicallyAccessedMemberTypes.PublicConstructors)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MemberInfo[] GetDefaultMembers([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.PublicNestedTypes | DynamicallyAccessedMemberTypes.PublicProperties)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static EventInfo? GetEvent([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents)] this Type type, string name);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static EventInfo? GetEvent([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicEvents | DynamicallyAccessedMemberTypes.PublicEvents)] this Type type, string name, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static EventInfo[] GetEvents([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static EventInfo[] GetEvents([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicEvents | DynamicallyAccessedMemberTypes.PublicEvents)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static FieldInfo? GetField([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] this Type type, string name);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static FieldInfo? GetField([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicFields | DynamicallyAccessedMemberTypes.PublicFields)] this Type type, string name, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static FieldInfo[] GetFields([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static FieldInfo[] GetFields([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicFields | DynamicallyAccessedMemberTypes.PublicFields)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Type[] GetGenericArguments(this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Type[] GetInterfaces([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.Interfaces)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MemberInfo[] GetMember([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.PublicNestedTypes | DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MemberInfo[] GetMember([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] this Type type, string name, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MemberInfo[] GetMembers([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.PublicNestedTypes | DynamicallyAccessedMemberTypes.PublicProperties)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MemberInfo[] GetMembers([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetMethod([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] this Type type, string name);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetMethod([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicMethods | DynamicallyAccessedMemberTypes.PublicMethods)] this Type type, string name, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetMethod([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] this Type type, string name, Type[] types);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo[] GetMethods([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo[] GetMethods([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicMethods | DynamicallyAccessedMemberTypes.PublicMethods)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Type? GetNestedType([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicNestedTypes | DynamicallyAccessedMemberTypes.PublicNestedTypes)] this Type type, string name, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Type[] GetNestedTypes([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicNestedTypes | DynamicallyAccessedMemberTypes.PublicNestedTypes)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo[] GetProperties([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo[] GetProperties([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicProperties | DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo? GetProperty([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo? GetProperty([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicProperties | DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo? GetProperty([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name, Type? returnType);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo? GetProperty([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name, Type? returnType, Type[] types);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static bool IsAssignableFrom(this Type type, [.NotNullWhenAttribute(true)] Type? c);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static bool IsInstanceOfType(this Type type, [.NotNullWhenAttribute(true)] object? o);
}
@steveharter steveharter added this to the 9.0.0 milestone Aug 3, 2023
@ghost
Copy link

ghost commented Aug 3, 2023

Tagging subscribers to this area: @dotnet/area-system-reflection
See info in area-owners.md if you want to be subscribed.

Issue Details

Address additional feedback from #53217 (comment):

Have we considered hiding TypeInfo as well?
What about all the other reflection additions we did for Win8, such as

  • System.Reflection.AssemblyExtensions
  • System.Reflection.CustomAttributeExtensions
  • System.Reflection.CustomAttributeExtensions
  • System.Reflection.EventInfoExtensions
  • System.Reflection.MemberInfoExtensions
  • System.Reflection.MethodInfoExtensions
  • System.Reflection.ModuleExtensions
  • System.Reflection.RuntimeReflectionExtensions
  • System.Reflection.TypeExtensions_
Author: steveharter
Assignees: -
Labels:

area-System.Reflection

Milestone: 9.0.0

@steveharter steveharter added the help wanted [up-for-grabs] Good issue for external contributors label Jul 25, 2024
@steveharter
Copy link
Member Author

These classes need the [EditorBrowsable(Never)] applied.

@steveharter steveharter modified the milestones: 9.0.0, 10.0.0 Jul 25, 2024
@dotnet-policy-service dotnet-policy-service bot added the in-pr There is an active PR which will close this issue when it is merged label Jan 3, 2025
@steveharter steveharter added the api-ready-for-review API is ready for review, it is NOT ready for implementation label Jan 10, 2025
@terrajobst
Copy link
Contributor

terrajobst commented Jan 21, 2025

Video

  • Looks good as proposed
namespace System.Reflection;

+[EditorBrowsable(EditorBrowsableState.Never)]
public static partial class RuntimeReflectionExtensions
{
+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static IEnumerable<FieldInfo> GetRuntimeFields([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.NonPublicFields)] this Type type);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static IEnumerable<MethodInfo> GetRuntimeMethods([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] this Type type);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static IEnumerable<PropertyInfo> GetRuntimeProperties([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties | DynamicallyAccessedMemberTypes.NonPublicProperties)] this Type type);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static IEnumerable<EventInfo> GetRuntimeEvents([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.NonPublicEvents)] this Type type);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static FieldInfo? GetRuntimeField([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] this Type type, string name);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRuntimeMethod([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] this Type type, string name, Type[] parameters);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo? GetRuntimeProperty([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static EventInfo? GetRuntimeEvent([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents)] this Type type, string name);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRuntimeBaseDefinition(this MethodInfo method);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static InterfaceMapping GetRuntimeInterfaceMap(this TypeInfo typeInfo, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] Type interfaceType);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo GetMethodInfo(this Delegate del);
}+[EditorBrowsable(EditorBrowsableState.Never)]
public static partial class RuntimeReflectionExtensions
{
+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static IEnumerable<FieldInfo> GetRuntimeFields([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.NonPublicFields)] this Type type);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static IEnumerable<MethodInfo> GetRuntimeMethods([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] this Type type);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static IEnumerable<PropertyInfo> GetRuntimeProperties([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties | DynamicallyAccessedMemberTypes.NonPublicProperties)] this Type type);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static IEnumerable<EventInfo> GetRuntimeEvents([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.NonPublicEvents)] this Type type);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static FieldInfo? GetRuntimeField([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] this Type type, string name);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRuntimeMethod([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] this Type type, string name, Type[] parameters);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo? GetRuntimeProperty([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static EventInfo? GetRuntimeEvent([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents)] this Type type, string name);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRuntimeBaseDefinition(this MethodInfo method);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static InterfaceMapping GetRuntimeInterfaceMap(this TypeInfo typeInfo, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] Type interfaceType);

+    [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo GetMethodInfo(this Delegate del);
}

namespace System.Reflection;

+[EditorBrowsable(EditorBrowsableState.Never)]
public static class AssemblyExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Type[] GetExportedTypes(this Assembly assembly);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Module[] GetModules(this Assembly assembly);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Type[] GetTypes(this Assembly assembly);
}

+[EditorBrowsable(EditorBrowsableState.Never)]
public static class EventInfoExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetAddMethod(this EventInfo eventInfo);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetAddMethod(this EventInfo eventInfo, bool nonPublic);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRaiseMethod(this EventInfo eventInfo);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRaiseMethod(this EventInfo eventInfo, bool nonPublic);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRemoveMethod(this EventInfo eventInfo);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetRemoveMethod(this EventInfo eventInfo, bool nonPublic);
}

+[EditorBrowsable(EditorBrowsableState.Never)]
public static class MemberInfoExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static int GetMetadataToken(this MemberInfo member);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static bool HasMetadataToken(this MemberInfo member);
}

+[EditorBrowsable(EditorBrowsableState.Never)]
public static class MethodInfoExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo GetBaseDefinition(this MethodInfo method);
}

+[EditorBrowsable(EditorBrowsableState.Never)]
public static partial class ModuleExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static System.Guid GetModuleVersionId(this Module module);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static bool HasModuleVersionId(this Module module);
}

+[EditorBrowsable(EditorBrowsableState.Never)]
public static class PropertyInfoExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo[] GetAccessors(this PropertyInfo property);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo[] GetAccessors(this PropertyInfo property, bool nonPublic);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetGetMethod(this PropertyInfo property);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetGetMethod(this PropertyInfo property, bool nonPublic);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetSetMethod(this PropertyInfo property);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetSetMethod(this PropertyInfo property, bool nonPublic);
}

+[EditorBrowsable(EditorBrowsableState.Never)]
public static class TypeExtensions
{
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static ConstructorInfo? GetConstructor([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] this Type type, Type[] types);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static ConstructorInfo[] GetConstructors([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static ConstructorInfo[] GetConstructors([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicConstructors | DynamicallyAccessedMemberTypes.PublicConstructors)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MemberInfo[] GetDefaultMembers([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.PublicNestedTypes | DynamicallyAccessedMemberTypes.PublicProperties)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static EventInfo? GetEvent([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents)] this Type type, string name);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static EventInfo? GetEvent([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicEvents | DynamicallyAccessedMemberTypes.PublicEvents)] this Type type, string name, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static EventInfo[] GetEvents([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static EventInfo[] GetEvents([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicEvents | DynamicallyAccessedMemberTypes.PublicEvents)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static FieldInfo? GetField([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] this Type type, string name);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static FieldInfo? GetField([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicFields | DynamicallyAccessedMemberTypes.PublicFields)] this Type type, string name, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static FieldInfo[] GetFields([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static FieldInfo[] GetFields([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicFields | DynamicallyAccessedMemberTypes.PublicFields)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Type[] GetGenericArguments(this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Type[] GetInterfaces([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.Interfaces)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MemberInfo[] GetMember([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.PublicNestedTypes | DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MemberInfo[] GetMember([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] this Type type, string name, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MemberInfo[] GetMembers([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.PublicNestedTypes | DynamicallyAccessedMemberTypes.PublicProperties)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MemberInfo[] GetMembers([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetMethod([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] this Type type, string name);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetMethod([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicMethods | DynamicallyAccessedMemberTypes.PublicMethods)] this Type type, string name, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo? GetMethod([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] this Type type, string name, Type[] types);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo[] GetMethods([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static MethodInfo[] GetMethods([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicMethods | DynamicallyAccessedMemberTypes.PublicMethods)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Type? GetNestedType([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicNestedTypes | DynamicallyAccessedMemberTypes.PublicNestedTypes)] this Type type, string name, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static Type[] GetNestedTypes([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicNestedTypes | DynamicallyAccessedMemberTypes.PublicNestedTypes)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo[] GetProperties([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)] this Type type);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo[] GetProperties([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicProperties | DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo? GetProperty([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo? GetProperty([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicProperties | DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name, BindingFlags bindingAttr);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo? GetProperty([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name, Type? returnType);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static PropertyInfo? GetProperty([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)] this Type type, string name, Type? returnType, Type[] types);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static bool IsAssignableFrom(this Type type, [.NotNullWhenAttribute(true)] Type? c);
+   [EditorBrowsable(EditorBrowsableState.Never)]
    public static bool IsInstanceOfType(this Type type, [.NotNullWhenAttribute(true)] object? o);
}

@terrajobst terrajobst added api-approved API was approved in API review, it can be implemented and removed api-ready-for-review API is ready for review, it is NOT ready for implementation labels Jan 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api-approved API was approved in API review, it can be implemented area-System.Reflection help wanted [up-for-grabs] Good issue for external contributors in-pr There is an active PR which will close this issue when it is merged
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants