dotnet/runtime
Ver no GitHubReflection on enums creates instances of open generic types
Open
#7.976 aberto em 28 de abr. de 2017
area-System.Reflectionbughelp wanted
Métricas do repositório
- Stars
- (17.886 stars)
- Métricas de merge de PR
- (Mesclagem média 12d 11h) (661 fundiu PRs em 30d)
Description
From https://codeblog.jonskeet.uk/2017/04/26/surprise-creating-an-instance-of-an-open-generic-type/
using System;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
object x = GetWeirdValue();
// This line prints True
Console.WriteLine(x.GetType().GetTypeInfo().IsGenericTypeDefinition);
}
static object GetWeirdValue() =>
typeof(Generic<>.GenericEnum).GetTypeInfo()
.GetDeclaredField("Foo")
.GetValue(null);
class Generic<T>
{
public enum GenericEnum
{
Foo = 0
}
}
}