//public static List<Stream> GetTestSuitesFromAssembly(string assemblyPath)
        //{
        //    var tempFileName = CreateAssemblyTempFile(assemblyPath);
        //    File.Copy(assemblyPath, tempFileName);
        //    var seperateAppDomainAssemblyLoader = new SeperateAppDomainAssemblyLoader();
        //    return seperateAppDomainAssemblyLoader.LoadAssemblyXmlResources(new FileInfo(tempFileName));
        //}

        public static List <string> GetTestSuitesFileFromAssemby(string assemblyPath)
        {
            //var tempFileName = CreateAssemblyTempFile(assemblyPath);
            //File.Copy(assemblyPath, tempFileName);
            var seperateAppDomainAssemblyLoader = new SeperateAppDomainAssemblyLoader();
            var resultList = seperateAppDomainAssemblyLoader.LoadAssemblyXmlResources(new FileInfo(assemblyPath));

            //File.Delete(tempFileName);

            return(resultList);
        }
        public static List <MethodInfo> GetTestScriptMethodsFromAssembly(string assemblyPath)
        {
            //var tempFileName = CreateAssemblyTempFile(assemblyPath);
            //File.Copy(assemblyPath, tempFileName);
            var seperateAppDomainAssemblyLoader = new SeperateAppDomainAssemblyLoader();
            var types = seperateAppDomainAssemblyLoader.LoadAssemblyTypes(new FileInfo(assemblyPath));

            var methodInfo = new List <MethodInfo>();

            foreach (var type in types)
            {
                try
                {
                    ObjectHandle oh = Activator.CreateInstanceFrom(assemblyPath, type);
                    object       o  = oh.Unwrap();
                    Type         to = o.GetType();

                    foreach (var method in to.GetMethods())
                    {
                        var customAttributes = method.GetCustomAttributes(false);

                        if (customAttributes.Length > 0)
                        {
                            foreach (var customAttribut in customAttributes)
                            {
                                if (customAttribut is TestScriptInformation)
                                {
                                    methodInfo.Add(method);
                                }
                            }
                        }
                    }
                }
                catch (Exception)
                {
                }
            }

            try
            {
                //File.Delete(tempFileName);
            }
            catch
            {
            }


            return(methodInfo);
        }
 private IList <PluginTypeInfo> GetPluginTypeInfo(string dllPath)
 {
     if (File.Exists(dllPath))
     {
         var typeLoader = new SeperateAppDomainAssemblyLoader()
         {
             CCNETServiceDirectory = CcnetServiceDirecotry
         };
         return(typeLoader.GetAssemblyTypes(new FileInfo(dllPath)).ToList());
     }
     else
     {
         return(new List <PluginTypeInfo>());
     }
 }