feat: add DynamicallyAccessedMembers attribute
#1973
Merged
+67
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Start to suppress AOT warnings
DynamicallyAccessedMembersto make it easier to decorate functionsLooking at the 24 warnings when I build with AOT:
Refit.For<T>()codeMakeGenericType- form my understanding this is safe to use as long as the generated type is statically reachable. I believe this will always be true for refit so we can suppress this. Otherwise I could use some of my logic from feat: add aot sandbox #1969 to make remove warning.RefitSettingsinterfaces, this might be an issue.DynamicallyAccessedMembersfor members that will be serialised, although refit could emit this when needed. (This has some issues)JsonSerializerContextand manually add a serialisation type for every return type.IHttpContentSerializerthat takesJsonSerializerContextor we could add a constructor to the current oneJsonSerializerContextis extremely cumbersome. I had the scuffed idea to take all the code fromSystem.Text.Json.SourceGenerator, add it to refit, and then emit a serialiser that can handle all of the users type. This is to get around the limit around source generators not being able to call one another.(This should be opt in via an attribute)
Related #1389