private static GACAssemblyName[] GetGACAssemblies(string name)
{
if (name.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) name = name.Remove(name.Length - 4);
List<GACAssemblyName> result = null;
foreach (GACAssemblyName current in _gacNameCache)
if (String.Equals(current.Name, name, StringComparison.OrdinalIgnoreCase))
(result ?? (result = new List<GACAssemblyName>())).Add(current);
return result == null ? GACAssemblyName.EmptyNames : result.ToArray();
}