/// <summary>
        /// Gets a fully formed using statement expanding any abbreviated statement beginning with using and ending with a semicolon.
        /// </summary>
        /// <param name="directive">
        /// The directive to use.
        /// </param>
        /// <returns>
        /// The qualified using statement.
        /// </returns>
        internal static string GetFullyQualifiedStatement(this IUsingDirective directive)
        {
            if (directive is IUsingAliasDirective)
            {
                IUsingAliasDirective aliasDirective = directive as IUsingAliasDirective;

                return(string.Format("using {0} = {1};", aliasDirective.AliasName, directive.GetFullyQualifiedNamespace()));
            }

            IUsingNamespaceDirective namespaceDirective = directive as IUsingNamespaceDirective;

            return(namespaceDirective != null?string.Format("using {0};", directive.GetFullyQualifiedNamespace()) : directive.GetText());
        }
Example #2
0
        /// <summary>
        /// Gets the full namespace for the Using directive with any aliases expanded.
        /// </summary>
        /// <param name="directive">
        /// The directive to use.
        /// </param>
        /// <returns>
        /// The fully qualified namespace.
        /// </returns>
        internal static string GetFullyQualifiedNamespace(this IUsingDirective directive)
        {
            if (directive is IUsingAliasDirective)
            {
                IUsingAliasDirective aliasDirective = directive as IUsingAliasDirective;

                INamespace aliasedNamespace = aliasDirective.DeclaredElement.GetAliasedNamespace();

                string returnValue = aliasedNamespace == null ? aliasDirective.ImportedSymbolName.QualifiedName : aliasedNamespace.QualifiedName;

                return(returnValue);
            }

            IUsingNamespaceDirective namespaceDirective = directive as IUsingNamespaceDirective;

            return(namespaceDirective.ImportedNamespace == null ? namespaceDirective.ImportedSymbolName.QualifiedName : namespaceDirective.ImportedNamespace.QualifiedName);
        }