dotnet/runtime

DispatchProxy invoke method returning GenericType with constraint TypeLoadException

Open

#94.096 aperta il 27 ott 2023

Vedi su GitHub
 (3 commenti) (0 reazioni) (0 assegnatari)C# (5445 fork)batch import
area-System.Reflectionhelp wanted

Metriche repository

Star
 (17.886 star)
Metriche merge PR
 (Merge medio 12g 11h) (661 PR mergiate in 30 g)

Descrizione

Description

This bug has already been added as #31485, but unfortunatelly closed! You promised repairing would be a milestone for .NET 5, but the bug still exists.

DispatchProxy can't generate adequate proxy for classes that have functions with generic type parameters or return values (in case of they have generic constraints). For me it is urgent. Is there any workaround, or when will this bug be fixed?

The exception I get when I make dispatch proxy in .NET 6 is also System.TypeLoadException: 'GenericArguments[0], 'TEntity', on DataAccess.Interface.Repository.IEntityRepository`1[TEntity]' violates the constraint of type parameter 'TEntity'.'

Please see #31485 for details.

Reproduction Steps

  1. Make a class with some functions that have generic parameters or return values ** with generic constraints **.

  2. Wrap it to a proxy using the DispatchProxy class.

  3. Call one function of theese.

Expected behavior

DispatchProxy can handle functions with generic parameter and return types have generic constraints (like the old RealProxy).

Actual behavior

DispatchProxy can't handle functions with generic parameter and return types have generic constraints.

Regression?

No response

Known Workarounds

Unfortunally I don't know any workaround. Maybe you can help me.

Configuration

No response

Other information

No response

Guida contributor