IWebDocumentViewerReportResolver Interface
Associates string values with report instances. Does not operate in asynchronous mode.
Namespace: DevExpress.XtraReports.Web.WebDocumentViewer
Assembly: DevExpress.XtraReports.v24.2.Web.dll
NuGet Package: DevExpress.Web.Reporting.Common
Declaration
Remarks
The built-in report resolver uses a report’s unique name to load a report from storage.
Note
The IWebDocumentViewerReportResolver
service does not operate in asynchronous mode.
To implement a custom report resolver, create a class and register it.
Create a Class
Create a class that implements the IWebDocumentViewerReportResolver interface.
The following example demonstrates a custom resolver that attempts to locate a match for a report name. If no match is found, it attempts to instantiate a type with the specified name.
using DevExpress.XtraReports.Web.WebDocumentViewer;
using DevExpress.XtraReports.UI;
// ...
public class CustomWebDocumentViewerReportResolver : IWebDocumentViewerReportResolver {
public CustomWebDocumentViewerReportResolver() { }
public XtraReport Resolve(string reportUniqueName) {
switch (reportUniqueName) {
case "Report1":
return new XtraReport1();
case "Report2":
return new XtraReport2();
default:
// Try to create a report using the fully qualified type name.
Type t = Type.GetType(reportUniqueName);
return typeof(XtraReport).IsAssignableFrom(t) ?
(XtraReport)Activator.CreateInstance(t) :
null;
}
}
}
Register a Resolver
Register a custom report resolver at application startup.
- ASP.NET Web Forms and ASP.NET MVC
- ASP.NET Core
var builder = WebApplication.CreateBuilder(args); builder.Services.AddSingleton<IWebDocumentViewerReportResolver, CustomWebDocumentViewerReportResolver>(); var app = builder.Build();
Note
Review the Open a Report in ASP.NET Core Application help topic for more information.