From 069ae9930a6d082a6cc22956cd784883da916148 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 22 Apr 2014 12:20:35 +1000 Subject: [PATCH] Fixes: U4-3425 App_Code XSLT Extensions aren't recognized --- src/Umbraco.Core/AssemblyExtensions.cs | 26 -------------------------- src/Umbraco.Core/TypeHelper.cs | 13 ++----------- 2 files changed, 2 insertions(+), 37 deletions(-) diff --git a/src/Umbraco.Core/AssemblyExtensions.cs b/src/Umbraco.Core/AssemblyExtensions.cs index fff444c34a..b9e1f4d812 100644 --- a/src/Umbraco.Core/AssemblyExtensions.cs +++ b/src/Umbraco.Core/AssemblyExtensions.cs @@ -68,31 +68,5 @@ namespace Umbraco.Core return new FileInfo(path); } - /// - /// Gets the objects for all the assemblies recursively referenced by a specified assembly. - /// - /// The assembly. - /// The objects for all the assemblies recursively referenced by the specified assembly. - public static IEnumerable GetDeepReferencedAssemblies(this Assembly assembly) - { - var allAssemblies = TypeFinder.GetAllAssemblies(); - var visiting = new Stack(); - var visited = new HashSet(); - - visiting.Push(assembly); - visited.Add(assembly); - while (visiting.Count > 0) - { - var visAsm = visiting.Pop(); - foreach (var refAsm in visAsm.GetReferencedAssemblies() - .Select(refAsmName => allAssemblies.SingleOrDefault(x => string.Equals(x.GetName().Name, refAsmName.Name, StringComparison.Ordinal))) - .Where(x => x != null && visited.Contains(x) == false)) - { - yield return refAsm.GetName(); - visiting.Push(refAsm); - visited.Add(refAsm); - } - } - } } } \ No newline at end of file diff --git a/src/Umbraco.Core/TypeHelper.cs b/src/Umbraco.Core/TypeHelper.cs index 1c04673960..6a35c92f08 100644 --- a/src/Umbraco.Core/TypeHelper.cs +++ b/src/Umbraco.Core/TypeHelper.cs @@ -63,18 +63,9 @@ namespace Umbraco.Core /// /// private static bool HasReferenceToAssemblyWithName(Assembly assembly, string expectedAssemblyName) - { - // The following code was not recursive ie if assembly.1 -> assembly.2 -> assembly.3, and expected is assembly.3, - // it would not consider that assembly.1 has a reference to assembly.3. Can cause issues eg when assembly.3 - // contains an attribute, assembly.2 defines a new attribute that inherit from that attribute, and assembly.1 - // uses the attribute in assembly.2. When looking for assemblies that have a chance to use the attribute, we - // look for assemblies that reference assembly.3, and we would fail to consider assembly.1. - // - // Better get deep-referenced assemblies. Has an impact on perfs obviously but only when the app starts. - + { return assembly - //.GetReferencedAssemblies() - .GetDeepReferencedAssemblies() + .GetReferencedAssemblies() .Select(a => a.Name) .Contains(expectedAssemblyName, StringComparer.Ordinal); }