Class VirtualPathXmlLocalizationProviderInitializer
Initializes a new FileXmlLocalizationProvider using the given virtual path to locate xml files.
Inheritance
Inherited Members
Namespace: EPiServer.Framework.Localization.XmlResources
Assembly: EPiServer.Framework.dll
Version: 10.10.4Syntax
public class VirtualPathXmlLocalizationProviderInitializer
Examples
Example of how a VirtualPathXmlLocalizationProviderInitializer can be used:
using System;
using System.Linq;
using EPiServer.Framework;
using EPiServer.Framework.Initialization;
using EPiServer.Framework.Localization;
using EPiServer.Framework.Localization.XmlResources;
using EPiServer.Web.Hosting;
namespace CodeSamples
{
[InitializableModule]
//A dependency to EPiServer CMS initialization is needed to be able to use a VPP
[ModuleDependency(typeof(EPiServer.Web.InitializationModule))]
public class CustomLanguageProviderInitializationWithVirtualPath : IInitializableModule
{
private const string ProviderName = "CustomProviderName";
public void Initialize(InitializationEngine context)
{
//Casts the current LocalizationService to a ProviderBasedLocalizationService to get access to the current list of providers
ProviderBasedLocalizationService localizationService = context.Locate.Advanced.GetInstance<LocalizationService>() as ProviderBasedLocalizationService;
if (localizationService != null)
{
VirtualPathXmlLocalizationProviderInitializer localizationProviderInitializer =
new VirtualPathXmlLocalizationProviderInitializer(GenericHostingEnvironment.VirtualPathProvider);
//a VPP with the path below must be registered in the sites configuration.
string virtualPath = "~/MyCustomLanguageVPP/";
FileXmlLocalizationProvider localizationProvider = localizationProviderInitializer.GetInitializedProvider(virtualPath, ProviderName);
//Inserts the provider first in the provider list so that it is prioritized over default providers.
localizationService.Providers.Insert(0, localizationProvider);
}
}
public void Uninitialize(InitializationEngine context)
{
//Casts the current LocalizationService to a ProviderBasedLocalizationService to get access to the current list of providers
ProviderBasedLocalizationService localizationService = context.Locate.Advanced.GetInstance<LocalizationService>() as ProviderBasedLocalizationService;
if (localizationService != null)
{
//Gets any provider that has the same name as the one initialized.
LocalizationProvider localizationProvider = localizationService.Providers.FirstOrDefault(p => p.Name.Equals(ProviderName, StringComparison.Ordinal));
if (localizationProvider != null)
{
//If found, remove it.
localizationService.Providers.Remove(localizationProvider);
}
}
}
public void Preload(string[] parameters) { }
}
}
Constructors
VirtualPathXmlLocalizationProviderInitializer(VirtualPathProvider)
Initializes a new instance of the VirtualPathXmlResourceProviderInitializer class.
Declaration
public VirtualPathXmlLocalizationProviderInitializer(VirtualPathProvider virtualPathProvider)
Parameters
Type | Name | Description |
---|---|---|
System.Web.Hosting.VirtualPathProvider | virtualPathProvider | The virtual path provider used when creating the FileXmlLocalizationProvider to initialize. |
Examples
Example of how a VirtualPathXmlLocalizationProviderInitializer can be used:
using System;
using System.Linq;
using EPiServer.Framework;
using EPiServer.Framework.Initialization;
using EPiServer.Framework.Localization;
using EPiServer.Framework.Localization.XmlResources;
using EPiServer.Web.Hosting;
namespace CodeSamples
{
[InitializableModule]
//A dependency to EPiServer CMS initialization is needed to be able to use a VPP
[ModuleDependency(typeof(EPiServer.Web.InitializationModule))]
public class CustomLanguageProviderInitializationWithVirtualPath : IInitializableModule
{
private const string ProviderName = "CustomProviderName";
public void Initialize(InitializationEngine context)
{
//Casts the current LocalizationService to a ProviderBasedLocalizationService to get access to the current list of providers
ProviderBasedLocalizationService localizationService = context.Locate.Advanced.GetInstance<LocalizationService>() as ProviderBasedLocalizationService;
if (localizationService != null)
{
VirtualPathXmlLocalizationProviderInitializer localizationProviderInitializer =
new VirtualPathXmlLocalizationProviderInitializer(GenericHostingEnvironment.VirtualPathProvider);
//a VPP with the path below must be registered in the sites configuration.
string virtualPath = "~/MyCustomLanguageVPP/";
FileXmlLocalizationProvider localizationProvider = localizationProviderInitializer.GetInitializedProvider(virtualPath, ProviderName);
//Inserts the provider first in the provider list so that it is prioritized over default providers.
localizationService.Providers.Insert(0, localizationProvider);
}
}
public void Uninitialize(InitializationEngine context)
{
//Casts the current LocalizationService to a ProviderBasedLocalizationService to get access to the current list of providers
ProviderBasedLocalizationService localizationService = context.Locate.Advanced.GetInstance<LocalizationService>() as ProviderBasedLocalizationService;
if (localizationService != null)
{
//Gets any provider that has the same name as the one initialized.
LocalizationProvider localizationProvider = localizationService.Providers.FirstOrDefault(p => p.Name.Equals(ProviderName, StringComparison.Ordinal));
if (localizationProvider != null)
{
//If found, remove it.
localizationService.Providers.Remove(localizationProvider);
}
}
}
public void Preload(string[] parameters) { }
}
}
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | If |
Methods
GetInitializedProvider(String, String)
Creates and initalizes a new FileXmlLocalizationProvider.
Declaration
public FileXmlLocalizationProvider GetInitializedProvider(string virtualPathToLangFolder, string nameOfProvider)
Parameters
Type | Name | Description |
---|---|---|
System.String | virtualPathToLangFolder | The virtual path to the folder where xml-lang files are located. |
System.String | nameOfProvider | A name for the provider. |
Returns
Type | Description |
---|---|
FileXmlLocalizationProvider | A new initialized provider. |
Examples
Example of how a VirtualPathXmlLocalizationProviderInitializer can be used:
using System;
using System.Linq;
using EPiServer.Framework;
using EPiServer.Framework.Initialization;
using EPiServer.Framework.Localization;
using EPiServer.Framework.Localization.XmlResources;
using EPiServer.Web.Hosting;
namespace CodeSamples
{
[InitializableModule]
//A dependency to EPiServer CMS initialization is needed to be able to use a VPP
[ModuleDependency(typeof(EPiServer.Web.InitializationModule))]
public class CustomLanguageProviderInitializationWithVirtualPath : IInitializableModule
{
private const string ProviderName = "CustomProviderName";
public void Initialize(InitializationEngine context)
{
//Casts the current LocalizationService to a ProviderBasedLocalizationService to get access to the current list of providers
ProviderBasedLocalizationService localizationService = context.Locate.Advanced.GetInstance<LocalizationService>() as ProviderBasedLocalizationService;
if (localizationService != null)
{
VirtualPathXmlLocalizationProviderInitializer localizationProviderInitializer =
new VirtualPathXmlLocalizationProviderInitializer(GenericHostingEnvironment.VirtualPathProvider);
//a VPP with the path below must be registered in the sites configuration.
string virtualPath = "~/MyCustomLanguageVPP/";
FileXmlLocalizationProvider localizationProvider = localizationProviderInitializer.GetInitializedProvider(virtualPath, ProviderName);
//Inserts the provider first in the provider list so that it is prioritized over default providers.
localizationService.Providers.Insert(0, localizationProvider);
}
}
public void Uninitialize(InitializationEngine context)
{
//Casts the current LocalizationService to a ProviderBasedLocalizationService to get access to the current list of providers
ProviderBasedLocalizationService localizationService = context.Locate.Advanced.GetInstance<LocalizationService>() as ProviderBasedLocalizationService;
if (localizationService != null)
{
//Gets any provider that has the same name as the one initialized.
LocalizationProvider localizationProvider = localizationService.Providers.FirstOrDefault(p => p.Name.Equals(ProviderName, StringComparison.Ordinal));
if (localizationProvider != null)
{
//If found, remove it.
localizationService.Providers.Remove(localizationProvider);
}
}
}
public void Preload(string[] parameters) { }
}
}
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | If any parameter is |