protected virtual string GetDirectory( [NotNull] string projectDir, [CanBeNull] string siblingFileName, [NotNull] string subnamespace) { Check.NotEmpty(projectDir, nameof(projectDir)); Check.NotNull(subnamespace, nameof(subnamespace)); var defaultDirectory = Path.Combine(projectDir, Path.Combine(subnamespace.Split('.'))); if (siblingFileName != null) { var siblingPath = TryGetProjectFile(projectDir, siblingFileName); if (siblingPath != null) { var lastDirectory = Path.GetDirectoryName(siblingPath); if (!defaultDirectory.Equals(lastDirectory, StringComparison.OrdinalIgnoreCase)) { _logger.Value.LogDebug(DesignCoreStrings.ReusingDirectory(siblingFileName)); return(lastDirectory); } } } return(defaultDirectory); }