public virtual string GetDefaultNamespace(string fileName) { DotNetNamingPolicy pol = Policies.Get <DotNetNamingPolicy> (); string root = null; string dirNamespc = null; string defaultNmspc = !string.IsNullOrEmpty(DefaultNamespace) ? DefaultNamespace : SanitisePotentialNamespace(Name) ?? "Application"; string dirname = Path.GetDirectoryName(fileName); string relativeDirname = null; if (!String.IsNullOrEmpty(dirname)) { relativeDirname = GetRelativeChildPath(dirname); if (string.IsNullOrEmpty(relativeDirname) || relativeDirname.StartsWith("..")) { relativeDirname = null; } } if (relativeDirname != null) { try { switch (pol.DirectoryNamespaceAssociation) { case DirectoryNamespaceAssociation.PrefixedFlat: root = defaultNmspc; goto case DirectoryNamespaceAssociation.Flat; case DirectoryNamespaceAssociation.Flat: dirNamespc = SanitisePotentialNamespace(relativeDirname); break; case DirectoryNamespaceAssociation.PrefixedHierarchical: root = defaultNmspc; goto case DirectoryNamespaceAssociation.Hierarchical; case DirectoryNamespaceAssociation.Hierarchical: dirNamespc = SanitisePotentialNamespace(GetHierarchicalNamespace(relativeDirname)); break; } } catch (IOException ex) { LoggingService.LogError("Could not determine namespace for file '" + fileName + "'", ex); } } if (dirNamespc != null && root == null) { return(dirNamespc); } if (dirNamespc != null && root != null) { return(root + "." + dirNamespc); } return(defaultNmspc); }
public async Task MDResourceNamingPolicy() { string solFile = Util.GetSampleProject("console-project", "ConsoleProject.sln"); Solution sol = (Solution)await Services.ProjectService.ReadWorkspaceItem(Util.GetMonitor(), solFile); var p = (DotNetProject)sol.Items [0]; var pol = new DotNetNamingPolicy(DirectoryNamespaceAssociation.Flat, ResourceNamePolicy.FileName); p.Policies.Set(pol); var f = p.AddFile(p.BaseDirectory.Combine("foo/SomeFile.txt"), BuildAction.EmbeddedResource); Assert.AreEqual("SomeFile.txt", f.ResourceId); await p.SaveAsync(Util.GetMonitor()); var p2 = (DotNetProject)await Services.ProjectService.ReadSolutionItem(Util.GetMonitor(), p.FileName); f = p2.GetProjectFile(f.FilePath); Assert.AreEqual("SomeFile.txt", f.ResourceId); }
public void LoadFrom(DotNetNamingPolicy policy) { checkAssociateNamespacesDirectories.Active = (policy.DirectoryNamespaceAssociation != DirectoryNamespaceAssociation.None); checkDefaultAsRoot.Active = policy.DirectoryNamespaceAssociation == DirectoryNamespaceAssociation.PrefixedFlat || policy.DirectoryNamespaceAssociation == DirectoryNamespaceAssociation.PrefixedHierarchical; radioHierarch.Active = policy.DirectoryNamespaceAssociation == DirectoryNamespaceAssociation.Hierarchical || policy.DirectoryNamespaceAssociation == DirectoryNamespaceAssociation.PrefixedHierarchical; if (policy.ResourceNamePolicy == ResourceNamePolicy.FileFormatDefault) { checkVSStyleResourceNames.Inconsistent = true; } else { checkVSStyleResourceNames.Active = policy.ResourceNamePolicy == ResourceNamePolicy.MSBuild; checkVSStyleResourceNames.Inconsistent = false; } if (firstLoad) { initialResourceNaming = policy.ResourceNamePolicy; firstLoad = false; } }
public async Task MDResourceNamingPolicy () { string solFile = Util.GetSampleProject ("console-project", "ConsoleProject.sln"); Solution sol = (Solution) await Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solFile); var p = (DotNetProject) sol.Items [0]; var pol = new DotNetNamingPolicy (DirectoryNamespaceAssociation.Flat, ResourceNamePolicy.FileName); p.Policies.Set (pol); var f = p.AddFile (p.BaseDirectory.Combine ("foo/SomeFile.txt"), BuildAction.EmbeddedResource); Assert.AreEqual ("SomeFile.txt", f.ResourceId); await p.SaveAsync (Util.GetMonitor ()); var p2 = (DotNetProject) await Services.ProjectService.ReadSolutionItem (Util.GetMonitor (), p.FileName); f = p2.GetProjectFile (f.FilePath); Assert.AreEqual ("SomeFile.txt", f.ResourceId); }