ThinkGeo.com    |     Documentation    |     Premium Support

New Blazor Project in .NET 10: InvalidOperationException

Let me preface this by I am total newbie to using Blazor. We currently use ThinkGeo.UI.WPF and are evaluating ThinkGeo.UI. Blazor for a significant upgrade to our code base. I have attempted to create a new map in Blazor with .NET 10 by following the samples given, which are significantly out of date. I have code I can share and I did verify my API Key with the source in the VectorTiles sample. However, when I create a new project in VS 2026 / .NET 10 I get the following error:

  • InvalidOperationException: Multiple constructors accepting all given argument types have been found in type ‘ThinkGeo.UI.Blazor.ThinkGeoCloudRasterMapsOverlay’. There should only be one applicable constructor.

    • Microsoft.Extensions.DependencyInjection.ActivatorUtilities.TryFindMatchingConstructor(Type instanceType, Type[] argumentTypes, out ConstructorInfo matchingConstructor, out Nullable[] parameterMap)

    • Microsoft.Extensions.DependencyInjection.ActivatorUtilities.FindApplicableConstructor(Type instanceType, Type[] argumentTypes, ConstructorInfoEx[] constructors, out ConstructorInfo matchingConstructor, out Nullable[] matchingParameterMap)

    • Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateFactoryInternal(Type instanceType, Type[] argumentTypes, out ParameterExpression provider, out ParameterExpression argumentArray, out Expression factoryExpressionBody)

    • Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateFactory(Type instanceType, Type[] argumentTypes)

    • Microsoft.AspNetCore.Components.DefaultComponentActivator.GetObjectFactory(Type componentType)

    • Microsoft.AspNetCore.Components.DefaultComponentActivator.CreateInstance(Type componentType)

    • Microsoft.AspNetCore.Components.ComponentFactory.InstantiateComponent(IServiceProvider serviceProvider, Type componentType, IComponentRenderMode callerSpecifiedRenderMode, Nullable parentComponentId)

    • Microsoft.AspNetCore.Components.RenderTree.Renderer.InstantiateChildComponentOnFrame(RenderTreeFrame[] frames, int frameIndex, int parentComponentId)

    • Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.InitializeNewComponentFrame(ref DiffContext diffContext, int frameIndex)

    • Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.InitializeNewSubtree(ref DiffContext diffContext, int frameIndex)

    • Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.InsertNewFrame(ref DiffContext diffContext, int newFrameIndex)

    • Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.InsertNewFrame(ref DiffContext diffContext, int newFrameIndex)

    • Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.InsertNewFrame(ref DiffContext diffContext, int newFrameIndex)

    • Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(ref DiffContext diffContext, int oldStartIndex, int oldEndIndexExcl, int newStartIndex, int newEndIndexExcl)

    • Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.ComputeDiff(Renderer renderer, RenderBatchBuilder batchBuilder, int componentId, ArrayRange oldTree, ArrayRange newTree)

    • Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, out Exception renderFragmentException)

    • Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue()

    • Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue()

    • Microsoft.AspNetCore.Components.RenderTree.Renderer.AddToRenderQueue(int componentId, RenderFragment renderFragment)

    • Microsoft.AspNetCore.Components.ComponentBase.StateHasChanged()

    • Microsoft.AspNetCore.Components.ComponentBase.CallOnParametersSetAsync()

    • Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()

    • Microsoft.AspNetCore.Components.Rendering.ComponentState.SetDirectParameters(ParameterView parameters)

    • Microsoft.AspNetCore.Components.RenderTree.Renderer.RenderRootComponentAsync(int componentId, ParameterView initialParameters)

    • Microsoft.AspNetCore.Components.HtmlRendering.Infrastructure.StaticHtmlRenderer.BeginRenderingComponent(IComponent component, ParameterView initialParameters)

    • Microsoft.AspNetCore.Components.Endpoints.EndpointHtmlRenderer.RenderEndpointComponent(HttpContext httpContext, Type rootComponentType, ParameterView parameters, bool waitForQuiescence)

    • System.Runtime.CompilerServices.ValueTaskAwaiter.GetResult()

    • Microsoft.AspNetCore.Components.Endpoints.RazorComponentEndpointInvoker.RenderComponentCore(HttpContext context)

    • Microsoft.AspNetCore.Components.Endpoints.RazorComponentEndpointInvoker.RenderComponentCore(HttpContext context)

    • Microsoft.AspNetCore.Components.Rendering.RendererSynchronizationContext+<>c+<b__10_0>d.MoveNext()

    • Microsoft.AspNetCore.Builder.ServerRazorComponentsEndpointConventionBuilderExtensions+<>c__DisplayClass1_1+<b__1>d.MoveNext()

    • Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.Invoke(HttpContext context)

    • Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)

    • Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)

Hi James,

We just upgraded the Blazor HowDoI to .net 10, and they are working fine with vs2026, can you have another try? It’s develop branch: samples/blazor/HowDoISample · develop · ThinkGeo / Public / Web Maps · GitLab

Thanks,
Ben

Ben,

Yes, the How Do I Sample runs in .NET 10. I notice it uses a 14.5.0 beta version, is that necessary to run in .NET 10?

Thanks,
James

Ben,
Additional information:
I did get my local test version to run in .NET 8 using the other 14.x versions but get the same error in .NET 10 using 14.4.2 which is the latest stable version available.

Thanks,
James

Hi James,

Yes, some changes are required for .NET 10 support, and they’re currently available only in beta builds. Would you be able to use the beta version for now? We’ll carry these beta features into the next stable release. Our current schedule is to release v14.5 in May 2026.

Thanks,
Ben

Ben,

I believe so since we are just doing a proof of concept on Blazor for a future project. May 2026 should be an acceptable timeframe for .NET10 support in TG Blazor. I will probably have more questions as I dig deeper this week. The goal is to have functional demo that is comparable to what we do with the WPF map.

Thanks,
James.

Sounds good! Just let us know when you have any Blazor questions.