Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement AOT safe DispatchProxy.Create #73136

Open
MichalStrehovsky opened this issue Aug 1, 2022 · 10 comments
Open

Implement AOT safe DispatchProxy.Create #73136

MichalStrehovsky opened this issue Aug 1, 2022 · 10 comments

Comments

@MichalStrehovsky
Copy link
Member

The generic DispatchProxy.Create can be done ahead of time, but it requires an AOT compiler feature.

@ghost
Copy link

ghost commented Aug 1, 2022

Tagging subscribers to this area: @dotnet/area-system-reflection
See info in area-owners.md if you want to be subscribed.

Issue Details

The generic DispatchProxy.Create can be done ahead of time, but it requires an AOT compiler feature.

Author: MichalStrehovsky
Assignees: -
Labels:

area-System.Reflection, area-NativeAOT-coreclr

Milestone: 8.0.0

@jkotas jkotas removed this from the 8.0.0 milestone Aug 1, 2022
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Aug 1, 2022
@jkotas
Copy link
Member

jkotas commented Aug 1, 2022

I do not think it make sense to have this custom build into Native AOT compiler like it was done in .NET Native. We should be looking at this as "reverse Invoke" reflection feature for all runtimes.

@joperezr joperezr added this to the Future milestone Aug 3, 2022
@ghost ghost removed the untriaged New issue has not been triaged by the area owner label Aug 3, 2022
@steveharter
Copy link
Member

I do not think it make sense to have this custom build into Native AOT compiler like it was done in .NET Native. We should be looking at this as "reverse Invoke" reflection feature for all runtimes.

Is there an existing proposal for this?

@MichalStrehovsky do you plan on working on this - it was originally marked 8.0 so I assume it was important at that time at least.

cc @buyaa-n per our offline discussion

@MichalStrehovsky
Copy link
Member Author

Not planning to work on it. There is an implementation in .NET Native that one can take inspiration from. There might be design docs as well but it was long time ago and I didn't work on any aspect of it.

@steveharter steveharter modified the milestones: Future, 8.0.0 Nov 7, 2022
@steveharter steveharter added the needs-further-triage Issue has been initially triaged, but needs deeper consideration or reconsideration label Nov 7, 2022
@steveharter
Copy link
Member

Moving to 8.0 for now but we need to discuss whether this is an AOT issue or a reflection\DispatchProxy issue.

@steveharter
Copy link
Member

Moving to future; doesn't seem to be high enough priority to make the cut.

@steveharter steveharter modified the milestones: 8.0.0, Future Jul 24, 2023
@steveharter steveharter modified the milestones: Future, 9.0.0 Nov 2, 2023
@steveharter steveharter self-assigned this Nov 2, 2023
@steveharter
Copy link
Member

We should take another look at this for v9.

@DjArt
Copy link

DjArt commented Jan 11, 2024

Is there any workaround?

@MichalStrehovsky
Copy link
Member Author

Is there any workaround?

No workaround, the implementation is full of Reflection.Emit and that's unsupportable in current form.

@steveharter steveharter removed this from the 9.0.0 milestone Jul 24, 2024
@mconnew
Copy link
Member

mconnew commented Sep 11, 2024

Lack of support for DispatchProxy will block apps that use WCF from using the new UWP on .NET 9 capability as that uses native aot. Blog post announcing UWP on .NET 9: https://devblogs.microsoft.com/ifdef-windows/preview-uwp-support-for-dotnet-9-native-aot/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants