diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin index 14d8dc199f..102252206b 100755 --- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin +++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin @@ -307,6 +307,12 @@ + + + + diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs index b3f94afa43..2af0352e9d 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs @@ -2,9 +2,11 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; +using System.Diagnostics; using System.Net; using System.Web.Services.Discovery; using System.Windows.Forms; +using System.Xml; using ICSharpCode.Core; using ICSharpCode.SharpDevelop.Gui; @@ -175,6 +177,47 @@ namespace ICSharpCode.SharpDevelop.Project.Commands } } + + + public class AddServiceReferenceToProject: AbstractMenuCommand + { + private static string NodePath = "//system.serviceModel//client//endpoint"; + + public override void Run() + { + AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode; + var f = CompilableProject.GetAppConfigFile(node.Project,false); + + var configFile = LoadConfigDocument(f); + + var endPoint = configFile.SelectSingleNode(NodePath).Attributes["address"].Value; + + ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe"); + startInfo.WindowStyle = ProcessWindowStyle.Normal; + startInfo.Arguments = endPoint; + Process.Start(startInfo); + } + + + static XmlDocument LoadConfigDocument(string fileName) + { + XmlDocument doc = null; + try + { + doc = new XmlDocument(); + + doc.Load(fileName); + return doc; + } + catch (System.IO.FileNotFoundException e) + { + throw new Exception("No configuration file found.", e); + } + } + } + + + public class RefreshReference : AbstractMenuCommand { public override void Run()