Skip to content

Odd Reflection Issue Loading DotNext.Threading Types Using Reflection #297

Description

@JasonBock

To recreate:

  • Create a console app with the following settings (note: this should be run with .NET 11 Preview 7)
    • <LangVersion>preview</LangVersion>
    • <TargetFramework>net11.0</TargetFramework>
  • Reference the DotNext.Threading NuGet package, version 6.6.5
  • Add this to Program.cs:
    • _ = typeof(DotNext.Threading.AsyncAutoResetEvent).Assembly.GetTypes();

I would expect this to return the types in the assembly. What I get is a TypeLoadException:

System.TypeLoadException: Method 'get_Task' in type 'DotNext.Threading.Tasks.<TaskSchedulerExtensions_T>FEC23FF8E24C5C893F2B0DCE3A3DBD6B033A895D525ABEAE11C935B5879FC7CF4__ImmediateTask`2' from assembly 'DotNext.Threading, Version=6.6.1.0, Culture=neutral, PublicKeyToken=c8827b44e18fe572' does not have an implementation.
System.TypeLoadException: Method 'get_Task' in type 'DotNext.Threading.Tasks.<TaskSchedulerExtensions_T>FEC23FF8E24C5C893F2B0DCE3A3DBD6B033A895D525ABEAE11C935B5879FC7CF4__DelayedTaskStateMachine`2' from assembly 'DotNext.Threading, Version=6.6.1.0, Culture=neutral, PublicKeyToken=c8827b44e18fe572' does not have an implementation.

I'm not sure this is a DotNext-specific issue. It may be something that's broken in the preview version of .NET 11 with the way these types are file scoped. If you feel like this is a general .NET issue, I can file it there, referencing this issue. I did a search for any current issues reported with TypeLoadException and nothing seemed related to this.

I also ran the same code targeting .NET 10 and it works with no issues, so ... I'm guessing this is .NET 11-specific.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Lib:ThreadingDotNext.Threading libraryquestionFurther information is requestedwontfixThis will not be worked on

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions