Syncfusion components doesn't render in Blazor WebAssembly application
When using Blazor WebAssembly application with Syncfusion Blazor components, the applications are not rendered in the web page.
The Blazor uses the System.Text.Json library for the serialization process to transfer data, whereas Syncfusion Blazor components use the Newtonsoft.json library for serializing data.
From 2021 Vol4 (19.4) release, Syncfusion no longer depend on Newtonsoft and no need to make the any of this changes.
We need to add the Linker.xml file with the Newtonsoft.json library references in the application solution (.csproj) file to resolve this component rendering issue in Blazor WebAssembly application.
Linker.xml configuration removes the unwanted dependent libraries in the final build and renders the Syncfusion components in Blazor WebAssembly application properly.
Find the Linker.xml file from the following link:
- The following code sample demonstrates the Linker.xml file and its configuration in the csproj file.
- Mention the name of the BlazorApp.csproj file name (BlazorApp) as the final assembly in the Linker.xml file.
- Add the following Linker.xml file reference in the solution (.csproj) file of your application.
<ItemGroup> <BlazorLinkerDescriptor Include="Linker.xml" /> </ItemGroup>
Disabling in the project file does not affect the rendering of components, but most of the unwanted dependent libraries will be included by the linker. In order to avoid this, the above approach is suggested.
We have planned to migrate the Newtonsoft.json functionalities to System.Text.Json. After migrating the process, the above configuration will no longer be needed to configure in the application end. Refer to the following feedback link for more details.