Brook.Locator.GetViewModelTypeMapping C# (CSharp) Метод

GetViewModelTypeMapping() приватный Метод

private GetViewModelTypeMapping ( ) : Type>.IDictionary
Результат Type>.IDictionary
        private IDictionary<string, Type> GetViewModelTypeMapping()
        {
            dynamic appDomain = AppDomain.CurrentDomain;
            var assemblies = (Assembly[])appDomain.GetAssemblies();
            var mapping = new Dictionary<string, Type>();

            var designTimeAssemblies =
                assemblies.Where(a => a.FullName.Contains("Design,")).OrderBy(a => a.FullName).OrderBy(
                    a => File.GetLastWriteTime(a.Location)).Reverse();

            string lastAssembly = null;
            foreach (var assembly in designTimeAssemblies)
            {
                if (assembly.FullName != lastAssembly)
                {
                    var types = assembly.GetTypes().Where(t=>t.Name.EndsWith("Design"));
                    foreach (var type in types)
                    {
                        var viewModelName = type.Name.Substring(0, type.Name.Length - "Design".Length);
                        mapping[viewModelName] = type;
                    }
                }
                lastAssembly = assembly.FullName;
            }
            return mapping;
        }