Catel.Runtime.RuntimeBindingRedirect.OnAssemblyResolve C# (CSharp) Method

OnAssemblyResolve() private method

private OnAssemblyResolve ( object sender, ResolveEventArgs args ) : Assembly
sender object
args System.ResolveEventArgs
return System.Reflection.Assembly
        private Assembly OnAssemblyResolve(object sender, ResolveEventArgs args)
        {
            var assemblyName = args.Name;

            if (!_attemptedLoads.Contains(assemblyName))
            {
                _attemptedLoads.Add(assemblyName);

                var simpleAssemblyName = TypeHelper.GetAssemblyNameWithoutOverhead(assemblyName);

                Log.Debug("Checking if there is a different version loaded for '{0}' using simple assembly name '{1}'", assemblyName, simpleAssemblyName);

                var possibleAssembly = (from assembly in _appDomain.GetLoadedAssemblies()
                                        where assembly.FullName.StartsWith(simpleAssemblyName)
                                        select assembly).FirstOrDefault();
                if (possibleAssembly != null)
                {
                    Log.Debug("Found assembly '{0}'", possibleAssembly.FullName);
                    return possibleAssembly;
                }
            }

            return null;
        }
    }