diff --git a/src/Orchard.Tests/Events/EventTests.cs b/src/Orchard.Tests/Events/EventTests.cs index 8aee2b481..94d9ec75d 100644 --- a/src/Orchard.Tests/Events/EventTests.cs +++ b/src/Orchard.Tests/Events/EventTests.cs @@ -22,13 +22,13 @@ namespace Orchard.Tests.Events { builder.RegisterType().As(); builder.RegisterType() - .Named(typeof(ITestEventHandler).Name.ToLowerInvariant(), typeof(IEventHandler)) - .Named(typeof(IEventHandler).Name.ToLowerInvariant(), typeof(IEventHandler)) - .WithMetadata("Interfaces", typeof(StubEventHandler2).GetInterfaces().ToLookup(i => i.Name, StringComparer.OrdinalIgnoreCase)); + .Named(typeof(ITestEventHandler).Name, typeof(IEventHandler)) + .Named(typeof(IEventHandler).Name, typeof(IEventHandler)) + .WithMetadata("Interfaces", typeof(StubEventHandler2).GetInterfaces().ToLookup(i => i.Name)); builder.RegisterInstance(_eventHandler) - .Named(typeof(ITestEventHandler).Name.ToLowerInvariant(), typeof(IEventHandler)) - .Named(typeof(IEventHandler).Name.ToLowerInvariant(), typeof(IEventHandler)) - .WithMetadata("Interfaces", typeof(StubEventHandler).GetInterfaces().ToLookup(i => i.Name, StringComparer.OrdinalIgnoreCase)); + .Named(typeof(ITestEventHandler).Name, typeof(IEventHandler)) + .Named(typeof(IEventHandler).Name, typeof(IEventHandler)) + .WithMetadata("Interfaces", typeof(StubEventHandler).GetInterfaces().ToLookup(i => i.Name)); _container = builder.Build(); _eventBus = _container.Resolve(); diff --git a/src/Orchard/Environment/ShellBuilders/ShellContainerFactory.cs b/src/Orchard/Environment/ShellBuilders/ShellContainerFactory.cs index abae9e5dd..ff5dc4a28 100644 --- a/src/Orchard/Environment/ShellBuilders/ShellContainerFactory.cs +++ b/src/Orchard/Environment/ShellBuilders/ShellContainerFactory.cs @@ -83,11 +83,11 @@ namespace Orchard.Environment.ShellBuilders { if (typeof(IEventHandler).IsAssignableFrom(item.Type)) { var interfaces = item.Type.GetInterfaces(); foreach (var interfaceType in interfaces) { - // Register named instance for each interface, for efficient filtering withing event bus - registration = registration.Named(interfaceType.Name.ToLowerInvariant(), typeof (IEventHandler)); + // Register named instance for each interface, for efficient filtering inside event bus + registration = registration.Named(interfaceType.Name, typeof (IEventHandler)); } // Keep interfaces in metadata for performance - registration = registration.WithMetadata("Interfaces", interfaces.ToLookup(i => i.Name, StringComparer.OrdinalIgnoreCase)); + registration = registration.WithMetadata("Interfaces", interfaces.ToLookup(i => i.Name)); } foreach (var parameter in item.Parameters) { diff --git a/src/Orchard/Events/DefaultOrchardEventBus.cs b/src/Orchard/Events/DefaultOrchardEventBus.cs index 7e924f93e..3043a8d58 100644 --- a/src/Orchard/Events/DefaultOrchardEventBus.cs +++ b/src/Orchard/Events/DefaultOrchardEventBus.cs @@ -37,7 +37,7 @@ namespace Orchard.Events { string interfaceName = parameters[0]; string methodName = parameters[1]; - var eventHandlers = _eventHandlers[interfaceName.ToLowerInvariant()]; + var eventHandlers = _eventHandlers[interfaceName]; foreach (var eventHandler in eventHandlers) { IEnumerable returnValue; if (TryNotifyHandler(eventHandler, messageName, interfaceName, methodName, eventData, out returnValue)) { @@ -74,7 +74,7 @@ namespace Orchard.Events { } private static bool TryInvokeMethod(IEventHandler eventHandler, Type interfaceType, string methodName, IDictionary arguments, out IEnumerable returnValue) { - var key = String.Concat(eventHandler.GetType().FullName + "_" + interfaceType.Name, "_", methodName, "_", String.Join("_", arguments.Keys)); + var key = eventHandler.GetType().FullName + "_" + interfaceType.Name + "_" + methodName + "_" + String.Join("_", arguments.Keys); var cachedDelegate = _delegateCache.GetOrAdd(key, k => { var method = GetMatchingMethod(eventHandler, interfaceType, methodName, arguments); return method != null