Podczas budowania własnego pipeline processor’a w Sitecore, często musimy przekazać do naszego kodu dodatkową konfigurację, np ścieżki do zasobów, lub przełączniki, które pozwolą na zmianę ustawień bez konieczności ponownej kompilacji kodu. Możemy to zrobić w łatwy sposób poprzez dodanie tych parametrów wewnątrz typowej konfiguracji pipeline processor’a i użycia pomocniczej metody Sitecore Configuration Factory:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?xml version="1.0" encoding="utf-8"?> <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/"> <sitecore> <pipelines> <mvc.requestBegin> <processor type="Sitecore.Feature.Styles.Processors.DynamicStylesProcessor, Sitecore.Feature.Styles" patch:before="processor[@type='Sitecore.Mvc.Pipelines.Request.RequestBegin.SetupPageContext, Sitecore.Mvc']"> <resources hint="list:AddResource"> <resource>/styles/smartsitecore/some.css</resource> <resource>/styles/smartsitecore/other.css</resource> </resources> </processor> </mvc.requestBegin> </pipelines> </sitecore> </configuration> |
Następnie w kodzie pipeline processor’a potrzebujemy metody “AddResource”, która będzie wołana dla każdego zasobu w węźle konfiguracji w pliku config. Po dodaniu reszty kodu, możemy używać naszych parametrów w metodzie “Process”:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using Sitecore.Mvc.Pipelines.Request.RequestBegin; using System.Collections.Generic; namespace Sitecore.Feature.Styles.Processors { public class DynamicStylesProcessor : RequestBeginProcessor { private readonly List<string> _resources = new List<string>(); public void AddResource(string resource) { _resources.Add(resource); } public override void Process(RequestBeginArgs args) { foreach (var resource in _resources) { //do something with resources } } } } |
Opisany wyżej sposób używa mechanizmu Sitecore Configuration Factory, który może być użyty w innych funkcjonalnościach, nie tylko w pipeline processor.