public bool AssembleAlgorithmInstance(Dictionary <string, string> modelInfo) { string oldDirectory = Directory.GetCurrentDirectory(); try { Directory.SetCurrentDirectory(modelInfo["workingDirectory"]); AssemblySupport.LoadAssembly(modelInfo["workingDirectory"], modelInfo["assemblyPath"]); object obj = AssemblySupport.GetNewInstance(modelInfo["algorithm"]); if (obj is IAlgorithm) { _algorithm = (IAlgorithm)obj; } else { throw new Exception("Error occur while adding algorithm"); } return(true); } catch (Exception e) { ExceptionUtil.SendErrorEventAndLog(GetType().ToString(), e.Message); throw e; } finally { Directory.SetCurrentDirectory(oldDirectory); } }
// Finds the node associated with this member internal static MemberTreeNode FindMember(MemberInfo member) { Type type = member.DeclaringType; Assembly assy = type.Assembly; AssemblyTreeNode assyNode = AssemblySupport.FindAssemblyNode(assy); if (assyNode == null) { return(null); } NamespaceTreeNode nameNode = assyNode.FindNamespace(type.Namespace); if (nameNode == null) { return(null); } TypeTreeNode typeNode = nameNode.FindType(type); if (typeNode == null) { return(null); } return(typeNode.FindMemberNode(member, !TypeTreeNode.FIND_NESTED)); }
public override void GetDetailText() { base.GetDetailText(); if (_typeLib != null) { _typeLib.GetDetailText(!TypeLibrary.SHOW_ASSY); } AssemblySupport.GetDetailText(_assembly); }
private void Reload() { FileInfo oprFile = _oprFile; AssemblySupport.ReleaseAll(); progressBar1.Value = 0; progressBar1.Invalidate(); UpdateTitleText(null); Initialise(oprFile.FullName); }
public ComponentInspectorView() { instance = this; SetLocalizedTitle("${res:ComponentInspector.ToolsMenu.ShowComponentInspectorMenuItem}"); // HACK: Due to various static members in the ComponentInspector // the ObjectBrowser does not like being re-used after being disposed. // Workaround this by keeping a reference to the ObjectBrowser. if (objectBrowser == null) { objectBrowser = new ObjectBrowser(showStatusPanel, tabbedLayout); } AssemblySupport.AddCurrentAssemblies(); ComSupport.RestoreComEnvironment(); AssemblySupport.RestoreAssemblies(); Application.Idle += IdleHandler; }
public static bool ValidateAlgorithmClassWithFullDLLPath(string workingDirectory, string assemblyPath, string classname) { string oldDirectory = Directory.GetCurrentDirectory(); try { Directory.SetCurrentDirectory(workingDirectory); AssemblySupport.LoadAssembly(workingDirectory, assemblyPath); object obj = AssemblySupport.GetNewInstance(classname); return(obj is IAlgorithm); } catch (Exception e) { return(false); } finally { Directory.SetCurrentDirectory(oldDirectory); } }
public override void RemoveLogicalNode() { AssemblySupport.CloseAssembly(this); ControlTree.RemoveAssy(_assembly); base.RemoveLogicalNode(); }
// When a link is clicked to this, the linkModifier is the // type or the assembly public void ShowTarget(Object linkModifier) { if (linkModifier == null) { return; } Assembly assy; Type type = null; MemberInfo memberInfo = null; if (linkModifier is Assembly) { assy = (Assembly)linkModifier; } else if (linkModifier is Type) { type = (Type)linkModifier; assy = type.Assembly; } else // MemberInfo { memberInfo = (MemberInfo)linkModifier; type = memberInfo.DeclaringType; assy = type.Assembly; } AssemblySupport.SelectAssyTab(); AssemblyTreeNode node = AssemblySupport.FindAssemblyTreeNode(assy); if (node == null) { throw new Exception("Bug: assembly not found for type: " + type); } if (type != null) { TypeTreeNode typeNode = node.GetTypeNode(type); if (typeNode == null) { throw new Exception("Bug: typeNode not found for type: " + type); } if (memberInfo != null) { MemberTreeNode memberNode = typeNode.FindMemberNode(memberInfo, !TypeTreeNode.FIND_NESTED); if (memberNode != null) { memberNode.PointToNode(); } else { throw new Exception("Bug: member not found for type: " + type + " mem: " + memberInfo); } } else { typeNode.PointToNode(); } } else { node.PointToNode(); } }