/// <summary>
        /// Initializes the <see cref="WrappedCSharpMediator"/> class.
        /// </summary>
        static WrappedCSharpMediator()
        {
            AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolve;

            mBasePath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

            mProcessRunTemplateCalls = (ProcessRunTemplateCalls)Delegate.CreateDelegate(typeof(ProcessRunTemplateCalls),
                                                                                        typeof(CSharpSourceCodeMediator).GetMethod("ProcessRunTemplateCalls",
                                                                                                                                   BindingFlags.Static | BindingFlags.NonPublic));

            mLogger = TemplatingLogger.GetLogger(typeof(WrappedCSharpMediator));

            mDebugAssemblies = new List <Assembly>();

            foreach (DebugAssembly debugAssemblyConfig in DebuggerConfig.Instance.Debugging.DebugAssemblies)
            {
                Assembly debugAssembly = LoadAssembly(debugAssemblyConfig.Name + ".dll");

                if (debugAssembly != null)
                {
                    mDebugAssemblies.Add(debugAssembly);
                }
                else
                {
                    mLogger.Error("Failed to load configured debug assembly: \"{0}\".", debugAssemblyConfig.Name);
                }
            }
        }
        /// <summary>
        /// Initializes the <see cref="WrappedCSharpMediator"/> class.
        /// </summary>
        static WrappedCSharpMediator()
        {
            AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolve;

            mBasePath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

            mProcessRunTemplateCalls = (ProcessRunTemplateCalls)Delegate.CreateDelegate(typeof(ProcessRunTemplateCalls),
                                            typeof(CSharpSourceCodeMediator).GetMethod("ProcessRunTemplateCalls",
                                            BindingFlags.Static | BindingFlags.NonPublic));

            mLogger = TemplatingLogger.GetLogger(typeof(WrappedCSharpMediator));

            mDebugAssemblies = new List<Assembly>();

            foreach (DebugAssembly debugAssemblyConfig in DebuggerConfig.Instance.Debugging.DebugAssemblies)
            {
                Assembly debugAssembly = LoadAssembly(debugAssemblyConfig.Name + ".dll");

                if (debugAssembly != null)
                    mDebugAssemblies.Add(debugAssembly);
                else
                    mLogger.Error("Failed to load configured debug assembly: \"{0}\".", debugAssemblyConfig.Name);
            }
        }