コード例 #1
0
        public static RulesExtractor Create(AssemblyResolver assemblyResolver)
        {
            if (assemblyResolver == null)
                throw new ArgumentNullException("assemblyResolver");

            return new RulesExtractor(assemblyResolver);
        }
コード例 #2
0
        internal WorkflowExtractor(AssemblyResolver assemblyResolver)
        {
            if (assemblyResolver == null)
                throw new ArgumentNullException("assemblyResolver");

            _assemblyResolver = assemblyResolver;
            _typeActivity = typeof(Activity);
        }
コード例 #3
0
        private RulesExtractor(AssemblyResolver assemblyResolver)
        {
            _assemblyResolver = assemblyResolver;
            _rulesStream = new List<Stream>();

            List<string> ruleResources = _assemblyResolver.GetResources();

            for (int i = 0; i < ruleResources.Count; i++)
            {
                string rulesData = _assemblyResolver.GetResourceData(ruleResources[i]).Replace("???<Rule", "<Rule");
                _rulesStream.Add(new MemoryStream(Encoding.Default.GetBytes(rulesData)));
            }
        }
コード例 #4
0
        private void UpdateUI(string inputFile)
        {
            treeLoaded.Nodes.Clear();
            var item = new BindItem(FileUtils.GetFileNameOnly(inputFile), inputFile);
            treeLoaded.Nodes.Add(new TreeNode { Text = item.Name, Tag = item });

            if (_processAssembly == null) return;

            if (_processAssembly.Value == false) // process rules
            {
                inputFile = FileUtils.Copy(inputFile);
                lstResources.Items.Add(inputFile);
            }
            else // process assembly
            {
                try
                {
                    string assemblyPath = FileUtils.Copy(inputFile);

                    // load assembly in memory
                    _assemblyResolver = new AssemblyResolver(assemblyPath);
                    _assemblyResolver.OnAssemblyLoaded += AssemblyResolverOnAssemblyLoaded;
                    _assemblyResolver.Load();
                }
                catch (ArgumentNullException argumentException)
                {
                    MessageBox.Show(@"Some technical error occured : " + argumentException.Message);
                }
                catch (InvalidOperationException loadException)
                {
                    MessageBox.Show(loadException.Message);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(@"Unknown error occured : " + ex.Message);
                }
            }
        }