Ejemplo n.º 1
0
        public static void AddDyanamicAssembly(System.Activities.Presentation.WorkflowDesigner WorkflowDesigner, System.Activities.Presentation.Hosting.AssemblyContextControlItem acci, Assembly asm)
        {
            if (!acci.ReferencedAssemblyNames.Select(x => x.FullName).Contains(asm.GetName().FullName))
            {
                acci.ReferencedAssemblyNames.Add(asm.GetName());
                WorkflowDesigner.Context.Items.SetValue(acci);
            }
            var root     = GetRootElement(WorkflowDesigner);
            var fullname = asm.FullName;
            var asmname  = asm.GetName().Name;

            if (null == root)
            {
                return;
            }
            var vbs = Microsoft.VisualBasic.Activities.VisualBasic.GetSettings(root) ?? new Microsoft.VisualBasic.Activities.VisualBasicSettings();

            var namespaces = (from type in asm.GetTypes() select type.Namespace).Distinct();

            foreach (var name in namespaces)
            {
                if (string.IsNullOrEmpty(name))
                {
                    continue;
                }
                var import = new Microsoft.VisualBasic.Activities.VisualBasicImportReference()
                {
                    Assembly = asmname, Import = name
                };
                vbs.ImportReferences.Add(import);
            }
            Microsoft.VisualBasic.Activities.VisualBasic.SetSettings(root, vbs);
        }
Ejemplo n.º 2
0
        public static void RemoveDynamicAssembly(System.Activities.Presentation.WorkflowDesigner WorkflowDesigner, System.Activities.Presentation.Hosting.AssemblyContextControlItem acci, Assembly asm)
        {
            if (acci.ReferencedAssemblyNames.Contains(asm.GetName()))
            {
                acci.ReferencedAssemblyNames.Remove(asm.GetName());
                WorkflowDesigner.Context.Items.SetValue(acci);
            }
            var root = GetRootElement(WorkflowDesigner);

            if (null == root)
            {
                return;
            }
            var vbs = Microsoft.VisualBasic.Activities.VisualBasic.GetSettings(root) ?? new Microsoft.VisualBasic.Activities.VisualBasicSettings();

            var namespaces = (from type in asm.GetTypes() select type.Namespace).Distinct();
            var fullname   = asm.FullName;

            foreach (var name in namespaces)
            {
                var theimport = (from importname in vbs.ImportReferences where importname.Assembly == fullname where importname.Import == name select importname).FirstOrDefault();
                if (theimport != null)
                {
                    vbs.ImportReferences.Remove(theimport);
                }
            }
            Microsoft.VisualBasic.Activities.VisualBasic.SetSettings(root, vbs);
        }