Patcher.Rules.RuleCompiler.ValidateCachedAssemblyVersion C# (CSharp) Method

ValidateCachedAssemblyVersion() private method

private ValidateCachedAssemblyVersion ( string path ) : bool
path string
return bool
        private bool ValidateCachedAssemblyVersion(string path)
        {
            AppDomain domain = AppDomain.CreateDomain("VersionChecker",
                new Evidence(AppDomain.CurrentDomain.Evidence),
                AppDomain.CurrentDomain.SetupInformation);

            try
            {
                Type checkerType = typeof(VersionChecker);
                var checker = (VersionChecker)domain.
                            CreateInstanceFrom(
                            checkerType.Assembly.Location,
                            checkerType.FullName).Unwrap();

                checker.LoadAssembly(path);
                string version = checker.GetVersion();
                if (version != Program.GetProgramVersionInfo())
                    return false;

                return EnsureMethodsExist(checker.GetMethods());
            }
            finally
            {
                AppDomain.Unload(domain);
            }
        }