[BUG] Warning when including a ValueConverter starting in .NET MAUI 9
Is there an existing issue for this?
- [X] I have searched the existing issues
Did you read the "Reporting a bug" section on Contributing file?
- [X] I have read the "Reporting a bug" section on Contributing file: https://github.com/CommunityToolkit/Maui/blob/main/CONTRIBUTING.md#reporting-a-bug
Current Behavior
Including a Converter from the MAUI Community Toolkit in a .NET MAUI 9 app triggers a warning
When referencing a converter (e.g. from the MAUI Community Toolkit) in XAML, xamlc generates a warning with code XC0103 in .NET 9 RC1. On .NET 8 this warning was not there.
This is especially annoying in projects where TreatWarningsAsErrors is enabled.
⚠️ The warning log below is a sample. However, this is an issue for all converters, not only for this specific IsNullConverter.
XamlC warning XC0103: Consider attributing the markup extension "CommunityToolkit.Maui.Converters.IsNullConverter" with [RequireService] or [AcceptEmptyServiceProvider] if it doesn't require any.
Expected Behavior
ValueConverters from the MAUI Community Toolkit can be included without triggering errors
Steps To Reproduce
- Create new MAUI project on .NET 9 RC1
- Add a converter to the main page's resources from the MAUI Community Toolkit
- Run
dotnet build - See the warning
Link to public reproduction project repository
https://github.com/hansmbakker/bugrepro-converter-issue
Environment
- .NET MAUI CommunityToolkit: 9.0.3
- OS:
- .NET MAUI: 9.0 RC1
Anything else?
This is caused by https://github.com/dotnet/maui/issues/19650 / https://github.com/dotnet/maui/pull/19945.
ValueConverters are expected to be attributed by RequireService or AcceptEmptyServiceProvider.
We don't currently support .NET 9
@VladislavAntonyuk we don't but this might be an issue worth keeping open for when we put in the work? .NET 9 is roughly only 2 months away
RC 1 has been out and customers are starting to migrate. This actually seems to break some functionality with converters, so this is pretty critical.
Yes, we will provide .NET 9 support when it GAs in November.
RC 1 has been out and customers are starting to migrate. This actually seems to break some functionality with converters, so this is pretty critical.
If you would like to speed things up please feel free to open a branch and submit a draft PR with the required changes
I have created a branch and draft PR here: https://github.com/CommunityToolkit/Maui/pull/2215
There are some errors that I will try to work through but if anyone wants to jump in please feel free
if anyone wants to jump in please feel free
Good that you started this - can others commit on this branch?
There are some errors
@bijington the SDK being used in the pipeline is the wrong one (it sticks to the .NET 8 one). Please see my comment in the PR for a suggestion.
Non-maintainers probably can't push to this branch but they could open a PR into this branch. That might work well if multiple people get involved.
Thanks for the pointers on the pipeline builds. I'm fighting with getting it compiled locally first 😟
Would be great to have this fixed now when .NET 9 is released.
Any updates on this? We are almost done with our migration to .NET9 and this is the last stop sign for us.
We are currently blocked by this issue https://github.com/dotnet/maui/issues/25871 although I am hoping to have a look over the weekend