BondInEtwLinqpadDriver.BondDynamicDriver.ResolveAssembly C# (CSharp) Method

ResolveAssembly() private static method

Needed to reference other assemblies that are not part of the .NET framework.
private static ResolveAssembly ( object sender, ResolveEventArgs resolveEventArgs ) : Assembly
sender object sender
resolveEventArgs System.ResolveEventArgs args
return System.Reflection.Assembly
        private static Assembly ResolveAssembly(object sender, ResolveEventArgs resolveEventArgs)
        {
            var assemblyname = resolveEventArgs.Name.Substring(0, resolveEventArgs.Name.IndexOf(',')) + @".dll";

            // System.Reactive.Debugger.dll is something that wont find hence return null
            if (string.Compare(assemblyname, @"system.reactive.debugger.dll", StringComparison.InvariantCultureIgnoreCase) == 0)
            {
                return null;
            }

            var driverDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            if (driverDirectory != null)
            {
                var assemblies = Directory.EnumerateFiles(driverDirectory, assemblyname);

                foreach (var path in assemblies)
                {
                    return Assembly.LoadFrom(path);
                }

                var root = Path.Combine(Path.GetTempPath(), @"LINQPad\");

                assemblies = Directory.EnumerateFiles(root, assemblyname, SearchOption.AllDirectories);

                foreach (var path in assemblies)
                {
                    return Assembly.LoadFrom(path);
                }

                var dataContextFolder = AppDomain.CurrentDomain.BaseDirectory;

                assemblies = Directory.EnumerateFiles(dataContextFolder, assemblyname, SearchOption.AllDirectories);

                return assemblies
                    .Select(Assembly.LoadFrom)
                    .FirstOrDefault();
            }

            return null;
        }