2017-12-06 1 views
1

Ich habe meine Version von ICultureSelector in einem benutzerdefinierten Modul implementiert. Hier ist es ein Teil seiner Definition (meine Frage ist nicht über die Logik zur Auswahl der Kultur; Ich versuchte mit meinem eigenen Namespace und auch mit einem Namespace wie der Namespace im Modul Orchard.Localization verwendet):Wie bekomme ich meine eigene ICultureSelector-Implementierung in das Framework injiziert

namespace Orchard.Localization.Selectors 
{ 
    [OrchardFeature("Orchard.Localization.CultureSelector")] 
    public class ShortRouteCultureSelector : ICultureSelector 
    { 
     public CultureSelectorResult GetCulture(HttpContextBase context) 
     { 
      ... 

Ich habe einen Breakpoint in der Methode GetCurrentCulture der Klasse CurrentCultureWorkContext im Projekt Orchard.Framework, und ich sehe, dass die Variable IEnumerable _cultureSelectors enthält die gesamte Implementierung von ICultureSelector des Moduls Orchard.Localization, aber nicht meine Implementierung, das ist nie benutzt.

Was fehlt mir?

+1

Versuchen Sie, das Attribut 'OrchardFeature' zu entfernen, oder definieren Sie einen eigenen Objektnamen, da 'Orchard.Localization.CultureSelector' bereits im Modul 'Orchard.Localization' definiert ist. – ViRuSTriNiTy

+1

@ViruStriNiTy Es funktioniert! Ich dachte, dass die Abhängigkeitsinjektion dieses Attribut verwendet, um meine Implementierung zusammen zu betrachten. Wenn du dies als Antwort schreibst, könnte ich es akzeptieren, weil du mein Problem gelöst hast –

+0

Ich bin froh, dass ich dir helfen konnte. – ViRuSTriNiTy

Antwort

1

Entfernen Sie das OrchardFeature Attribut oder definieren Sie einen eigenen Featurenamen, da Orchard.Localization.CultureSelector bereits im Modul Orchard.Localization definiert ist.

Verwandte Themen