views:

33

answers:

1

Can anyone explain to me why GetInterfaces() in the below code returns an interface type that has FullName = null?

public class Program
{
    static void Main(string[] args)
    {
        Type[] interfaces = typeof (Data<>).GetInterfaces();
        foreach (Type @interface in interfaces)
        {
            Console.WriteLine("Name='{0}' FullName='{1}'", @interface.Name, @interface.FullName ?? "null");
        }
    }
}

public class Data<T> : IData<T>
{
    public T Content { get; set; }
}

public interface IData<T>
{
    T Content { get; set; }
}

The output of the program is:

Name=IData`1' FullName='null'

I kind of expected:

Name=IData`1'
FullName='ConsoleApplication2.IData`1'

Please enlighten me :)