/// <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()); }
/// <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); }