-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
questionFurther information is requestedFurther information is requested
Description
I'm using a custom RazorPage<TModel> which I'd like to have dependencies injected into. It needs a parameterless constructor for MVC, meaning I have to use property injection.
# MyRazorPage.cs
public abstract class MyRazorPage<TModel> : RazorPage<TModel>
{
[Import]
public ITenantContextProvider<TenantContext> tenantProvider { get; init; }
public TenantContext? Tenant => tenantProvider.GetContext();
}#_ViewImports.cshtml
@inherits MyRazorPage<TModel>I'm assuming IPropertySelectionBehavior and IComponentActivator would work here as well, but it doesn't. The property remains null. Furthermore if I use RazorInject I'm getting an exception from Microsoft DI that ITenantContextProvider<TenantContext> is not a registered service:
System.InvalidOperationException: No service for type 'ITenantContextProvider`1[TenantContext]' has been registered.
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.AspNetCore.Mvc.Razor.RazorPagePropertyActivator.<>c__DisplayClass8_0.<CreateActivateInfo>b__1(ViewContext context)
at Microsoft.Extensions.Internal.PropertyActivator`1.Activate(Object instance, TContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorPagePropertyActivator.Activate(Object page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorPageActivator.Activate(IRazorPage page, ViewContext context)
(split from simpleinjector/SimpleInjector#860 (comment))
Metadata
Metadata
Assignees
Labels
questionFurther information is requestedFurther information is requested