Skip to content

MarkupExtension: IRootObjectProvider not available in release mode #16881

Closed
@loop8ack

Description

@loop8ack

Description

The ServiceProvider passed to the ProvideValue method of a MarkupExtension returns an IRootObjectProvider in debug mode, but not in release mode.

I have been able to reproduce it with the following versions:

  • 7.0.92
  • 8.0.0-preview.7.8842

Steps to Reproduce

Create a new MAUI project and use the following code:

public class MyTestExtension : IMarkupExtension<string>
{
    public string ProvideValue(IServiceProvider serviceProvider)
        => (serviceProvider.GetService(typeof(IRootObjectProvider)) is not null).ToString();

    object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
        => ProvideValue(serviceProvider);
}
<Label Text="{local:MyTestExtension}" />

Output in debug mode: true
Output in release mode: false

All other services are available in both debug and release mode

Link to public reproduction project repository

Maui.Issue16881.Reproduction

Version with bug

8.0.0-preview.7.8842

Is this a regression from previous behavior?

Not sure, did not test other versions

Last version that worked well

Unknown/Other

Affected platforms

I was not able test on other platforms

Affected platform versions

No response

Did you find any workaround?

No response

Relevant log output

No response

Metadata

Metadata

Labels

area-xamlXAML, CSS, Triggers, Behaviorss/triagedIssue has been revieweds/verifiedVerified / Reproducible Issue ready for Engineering Triaget/bugSomething isn't working

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions