Skip to main content
.NET Framework 4.5.2+

XafApplication.OptimizedControllersCreation Property

Disables the instantiation of Controllers that will never be activated in nested List Views.

Namespace: DevExpress.ExpressApp

Assembly: DevExpress.ExpressApp.v23.1.dll

NuGet Package: DevExpress.ExpressApp


public bool OptimizedControllersCreation { get; set; }

Property Value

Type Default Description
Boolean false

true, if the optimized controllers creation is enabled; otherwise, false.


When the OptimizedControllersCreation property is set to true, View Controllers that are not activated due to ViewController.TargetViewType, ViewController.TargetViewNesting, ViewController.TargetObjectType, or ViewController.TargetViewId restrictions, are not created.

This optimization is supported in Windows and Frames, whose Frame.View does not change during the Frame’s life cycle:

If you have a custom Action which changes the Frame’s View (e.g, by setting TargetWindow to Current) in one of the aforementioned cases, set OptimizedControllersCreation to false.

The OptimizedControllersCreation value has no effect when the Frame’s View can be changed (for example, when the Frame is the application’s main window). In this case, the application creates instances of all registered Controller types for this Frame beforehand.

In applications created using the Solution Wizard version 17.1 or higher, the default OptimizedControllersCreation property value is true. This happens because the wizard generates new projects with the FrameworkSettings.DefaultSettingsCompatibilityMode property set to Latest.


To avoid possible null reference exceptions when accessing an existing Controller from your code, always ensure that the Frame.GetController<ControllerType> method result is not null when the XafApplication.OptimizedControllersCreation property is true.

See Also