Is there a difference between Assembly.ExportedTypes and Assembly.GetExportedTypes()

.net, .net-assembly, c#, clr

Solution

Looking into .NET sources using ILSpy returns following `ExportedTypes` implementation:

public virtual IEnumerable<Type> ExportedTypes
{
    get
    {
        return this.GetExportedTypes();
    }
}

However, classes that inherits `Assembly` class can implement the property differently, so you probably shouldn't rely on `GetExportedTypes()` and `ExportedTypes` doing exactly the same thing.

Problem

The .NET Assembly class contains a method (GetExportedTypes()) and a property (ExportedTypes). The documentation for these seems identical ("Returns a collection of all public visible types in the assembly"). Is there any difference between these ? or is this something related to historical reasons with the Assembly class's API ?

Original source