Browse Source

SD2-799 - Updating web references resets the namespace. The namespace is now stored inside the MSBuild WebReferenceUrl element. Modified SharpQuery's OLE DB COM reference to use the new format so the interop assembly can be located for code completion.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1385 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Ward 19 years ago
parent
commit
9add2ad9bb
  1. 16
      src/AddIns/Misc/SharpQuery/SharpQuery.csproj
  2. 1
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/WebReference.cs
  3. 2
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs
  4. 14
      src/Main/Base/Project/Src/Project/WebReferenceUrl.cs
  5. 6
      src/Main/Base/Test/WebReferences/WebReferenceProjectItemsTest.cs
  6. 24
      src/Main/Base/Test/WebReferences/WebReferenceUrlTests.cs

16
src/AddIns/Misc/SharpQuery/SharpQuery.csproj

@ -77,14 +77,6 @@ @@ -77,14 +77,6 @@
<Compile Include="Src\SharpQuerySchemaClass.cs" />
</ItemGroup>
<ItemGroup>
<COMReference Include="Microsoft OLE DB Service Component 1.0 Type Library">
<Guid>{2206CEB0-19C1-11D1-89E0-00C04FD7A829}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
<ProjectReference Include="..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project>
<Name>ICSharpCode.SharpDevelop</Name>
@ -96,6 +88,14 @@ @@ -96,6 +88,14 @@
<Private>False</Private>
</ProjectReference>
<Content Include="PostBuildEvent.proj" />
<COMReference Include="MSDASC">
<Guid>{2206CEB0-19C1-11D1-89E0-00C04FD7A829}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<Import Project="PostBuildEvent.proj" />

1
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/WebReference.cs

@ -372,6 +372,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -372,6 +372,7 @@ namespace ICSharpCode.SharpDevelop.Gui
webReferenceUrl.Include = url;
webReferenceUrl.UpdateFromURL = url;
webReferenceUrl.RelPath = relativePath;
webReferenceUrl.Namespace = proxyNamespace;
items.Add(webReferenceUrl);
// References.

2
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs

@ -56,7 +56,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -56,7 +56,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
DiscoveryClientProtocol protocol = DiscoverWebServices(url.UpdateFromURL);
if (protocol != null) {
// Save web services.
WebReference webReference = new WebReference(url.Project, url.UpdateFromURL, node.Text, url.Project.RootNamespace, protocol);
WebReference webReference = new WebReference(url.Project, url.UpdateFromURL, node.Text, url.Namespace, protocol);
webReference.Save();
// Update project.

14
src/Main/Base/Project/Src/Project/WebReferenceUrl.cs

@ -98,6 +98,20 @@ namespace ICSharpCode.SharpDevelop.Project @@ -98,6 +98,20 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
[Browsable(false)]
public string Namespace {
get {
string ns = base.Properties["Namespace"];
if (ns.Length > 0) {
return ns;
}
return Project.RootNamespace;
}
set {
base.Properties["Namespace"] = value;
}
}
public override string FileName {
get {
if (Project != null && RelPath != null) {

6
src/Main/Base/Test/WebReferences/WebReferenceProjectItemsTest.cs

@ -110,6 +110,12 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences @@ -110,6 +110,12 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
Assert.AreEqual("Static", webReferenceUrl.UrlBehavior);
}
[Test]
public void WebReferenceUrlNamespace()
{
Assert.AreEqual(proxyNamespace, webReferenceUrl.Namespace);
}
[Test]
public void WebReferenceRelPath()
{

24
src/Main/Base/Test/WebReferences/WebReferenceUrlTests.cs

@ -54,6 +54,28 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences @@ -54,6 +54,28 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
Assert.AreEqual("http://localhost/test.asmx", url.Include);
Assert.AreEqual("Web References\\mywebservice", url.RelPath);
}
[Test]
public void NoNamespaceSpecified()
{
MSBuildProject project = new MSBuildProject();
project.FileName = "c:\\projects\\test\\foo.csproj";
project.RootNamespace = "TestRootNamespace";
WebReferenceUrl url = new WebReferenceUrl(project);
Assert.AreEqual("TestRootNamespace", url.Namespace);
}
[Test]
public void NamespaceSpecified()
{
MSBuildProject project = new MSBuildProject();
project.FileName = "c:\\projects\\test\\foo.csproj";
project.RootNamespace = "TestRootNamespace";
WebReferenceUrl url = new WebReferenceUrl(project);
url.Namespace = "WebReferenceNamespace";
Assert.AreEqual("WebReferenceNamespace", url.Namespace);
}
}
}

Loading…
Cancel
Save