Provides a readily testable way to manage a Singleton

Namespace: DotNetNuke.Framework
Assembly: DotNetNuke (in DotNetNuke.dll)

Syntax

C#
public abstract class ServiceLocator<TContract, TSelf>
where TSelf : new(), ServiceLocator<TContract, TSelf>
Visual Basic
Public MustInherit Class ServiceLocator(Of TContract, TSelf As {New, ServiceLocator(Of TContract, TSelf)})

Type Parameters

TContract
The interface that the controller provides
TSelf
The type of the controller itself, used to call the GetFactory override

Inheritance Hierarchy

System..::..Object
  DotNetNuke.Framework..::..ServiceLocator<(Of <(<'TContract, TSelf>)>)>
    DotNetNuke.Common.Internal..::..TestableGlobals
    DotNetNuke.Common.Utilities..::..CBO
    DotNetNuke.Common.Utilities..::..JavaScriptUtils
    DotNetNuke.Data..::..ControllerBase<(Of <(<'TEntity, TContract, TSelf>)>)>
    DotNetNuke.Entities.Content..::..ContentController
    DotNetNuke.Entities.Content.Workflow.Actions..::..WorkflowActionManager
    DotNetNuke.Entities.Content.Workflow..::..SystemWorkflowManager
    DotNetNuke.Entities.Content.Workflow..::..WorkflowEngine
    DotNetNuke.Entities.Content.Workflow..::..WorkflowLogger
    DotNetNuke.Entities.Content.Workflow..::..WorkflowManager
    DotNetNuke.Entities.Content.Workflow..::..WorkflowSecurity
    DotNetNuke.Entities.Content.Workflow..::..WorkflowStateManager
    DotNetNuke.Entities..::..EventManager
    DotNetNuke.Entities.Modules.Internal..::..TestableModuleController
    DotNetNuke.Entities.Modules..::..ModuleController
    DotNetNuke.Entities.Portals.Internal..::..PortalTemplateIO
    DotNetNuke.Entities.Portals.Internal..::..TestablePortalAliasController
    DotNetNuke.Entities.Portals.Internal..::..TestablePortalController
    DotNetNuke.Entities.Portals..::..PortalAliasController
    DotNetNuke.Entities.Portals..::..PortalController
    DotNetNuke.Entities.Tabs.Internal..::..TestableTabController
    DotNetNuke.Entities.Tabs..::..TabChangeSettings
    DotNetNuke.Entities.Tabs..::..TabChangeTracker
    DotNetNuke.Entities.Tabs..::..TabController
    DotNetNuke.Entities.Tabs..::..TabModulesController
    DotNetNuke.Entities.Tabs..::..TabPublishingController
    DotNetNuke.Entities.Tabs.TabVersions..::..TabVersionBuilder
    DotNetNuke.Entities.Tabs.TabVersions..::..TabVersionController
    DotNetNuke.Entities.Tabs.TabVersions..::..TabVersionDetailController
    DotNetNuke.Entities.Tabs.TabVersions..::..TabVersionSettings
    DotNetNuke.Entities.Tabs..::..TabWorkflowSettings
    DotNetNuke.Entities.Users.Internal..::..TestableUserController
    DotNetNuke.Entities.Users.Social..::..FollowersController
    DotNetNuke.Entities.Users.Social..::..FriendsController
    DotNetNuke.Entities.Users.Social..::..RelationshipController
    DotNetNuke.Entities.Users..::..UserController
    DotNetNuke.Framework.JavaScriptLibraries..::..JavaScriptLibraryController
    DotNetNuke.Framework..::..ServicesFramework
    DotNetNuke.Security.Permissions..::..FolderPermissionController
    DotNetNuke.Security.Roles.Internal..::..TestableRoleController
    DotNetNuke.Security.Roles..::..RoleController
    DotNetNuke.Services.FileSystem..::..FileLinkClickController
    DotNetNuke.Services.FileSystem..::..FolderMappingsConfigController
    DotNetNuke.Services.FileSystem.Internal..::..FileDeletionController
    DotNetNuke.Services.FileSystem.Internal..::..FileLockingController
    DotNetNuke.Services.FileSystem.Internal..::..UserSecurityController
    DotNetNuke.Services.ImprovementsProgram..::..BeaconService
    DotNetNuke.Services.Installer.Blocker..::..InstallBlocker
    DotNetNuke.Services.Installer.Packages..::..PackageController
    DotNetNuke.Services.Journal.Internal..::..InternalJournalController
    DotNetNuke.Services.Journal..::..JournalController
    DotNetNuke.Services.Journal..::..JournalDataService
    DotNetNuke.Services.Localization.Internal..::..TestableLocalization
    DotNetNuke.Services.Log.EventLog..::..EventLogController
    DotNetNuke.Services.Log.EventLog..::..LogController
    DotNetNuke.Services.Search.Controllers..::..SearchController
    DotNetNuke.Services.Search.Internals..::..InternalSearchController
    DotNetNuke.Services.Search.Internals..::..SearchHelper
    DotNetNuke.Services.Search.Internals..::..SearchQueryStringParser
    DotNetNuke.Services.Social.Messaging.Internal..::..InternalMessagingController
    DotNetNuke.Services.Social.Messaging..::..MessagingController
    DotNetNuke.Services.Social.Messaging..::..UserPreferencesController
    DotNetNuke.Services.Social.Notifications..::..NotificationsController
    DotNetNuke.Services.Social.Subscriptions.Data..::..DataService
    DotNetNuke.Services.Social.Subscriptions..::..SubscriptionController
    DotNetNuke.Services.Social.Subscriptions..::..SubscriptionSecurityController
    DotNetNuke.Services.Social.Subscriptions..::..SubscriptionTypeController
    DotNetNuke.Services.Upgrade.Internals..::..InstallController
    DotNetNuke.Web.Api.Internal..::..AntiForgery
    DotNetNuke.Web.Components.Controllers..::..ControlBarController
    DotNetNuke.Web.Mvc.Common..::..AntiForgery
    DotNetNuke.Web.Mvc.Common..::..DesktopModuleControllerAdapter
    DotNetNuke.Web.Mvc.Common..::..ModuleControlControllerAdapter

See Also