/// <summary> /// Links a reference node to the project and hierarchy. /// </summary> public virtual void AddReference() { ReferenceContainerNode referencesFolder = this.ProjectMgr.FindChild(ReferenceContainerNode.ReferencesNodeVirtualName) as ReferenceContainerNode; Debug.Assert(referencesFolder != null, "Could not find the References node"); CannotAddReferenceErrorMessage referenceErrorMessageHandler = null; if (!this.CanAddReference(out referenceErrorMessageHandler)) { if (referenceErrorMessageHandler != null) { referenceErrorMessageHandler.DynamicInvoke(new object[] { }); } return; } // Link the node to the project file. this.BindReferenceData(); // At this point force the item to be refreshed this.ItemNode.RefreshProperties(); referencesFolder.AddChild(this); return; }
/// <summary> /// Links a reference node to the project and hierarchy. /// </summary> public virtual /*void*/ ReferenceNode AddReference() // { XSharpProjectPackage.Instance.UIThread.MustBeCalledFromUIThread(); ReferenceNode existingNode = null; /// returns existing node or null if this node has been newly added ReferenceContainerNode referencesFolder = this.ProjectMgr.FindChild(ReferenceContainerNode.ReferencesNodeVirtualName) as ReferenceContainerNode; Debug.Assert(referencesFolder != null, "Could not find the References node"); CannotAddReferenceErrorMessage referenceErrorMessageHandler = null; if (!this.CanAddReference(out referenceErrorMessageHandler, out existingNode)) { if (referenceErrorMessageHandler != null) { referenceErrorMessageHandler.DynamicInvoke(new object[] { }); } return(existingNode); } // Link the node to the project file. this.BindReferenceData(); // At this point force the item to be refreshed this.ItemNode.RefreshProperties(); referencesFolder.AddChild(this); return(existingNode); }