private static INamespace GetNamespace(CSharpElementFactory factory, string importName) { var usingDirective = factory.CreateUsingDirective(importName); var reference = usingDirective.ImportedSymbolName; var reflectionNamespace = reference.Reference.Resolve().DeclaredElement as INamespace; return(reflectionNamespace); }
public static void AddUsing(this ICSharpFile file, string namespaceName, [NotNull] CSharpElementFactory factory) { var usingSymbolDirectives = file.ImportsEnumerable.OfType <IUsingSymbolDirective>().ToArray(); var taskUsing = factory.CreateUsingDirective(namespaceName); if (usingSymbolDirectives.All(i => i.ImportedSymbolName.QualifiedName != namespaceName)) { file.AddImport(taskUsing, true); } }
private void AddUsings(MockInfo[] mockInfos, CSharpElementFactory factory) { var usingSymbolDirectives = file.ImportsEnumerable.OfType <IUsingSymbolDirective>().ToArray(); var namespaces = mockInfos.Select(x => x.Type.GetScalarType()?.GetClrName().GetNamespaceName()).Where(x => !string.IsNullOrEmpty(x)).Distinct().ToArray(); foreach (var namespaceName in namespaces) { var taskUsing = factory.CreateUsingDirective(namespaceName); if (usingSymbolDirectives.All(i => i.ImportedSymbolName.QualifiedName != namespaceName)) { file.AddImport(taskUsing, true); } } }
private static void EnsureNamespaceExists(ICSharpFile file, CSharpElementFactory factory) { var namespaceExists = file.NamespaceDeclarationNodes.Any( n => n.Imports.Any(d => d.ImportedSymbolName.QualifiedName == AsObservableNamespace)); if (!namespaceExists) { var directive = factory.CreateUsingDirective(AsObservableNamespace); var namespaceNode = file.NamespaceDeclarationNodes.FirstOrDefault(); if (namespaceNode != null) { UsingUtil.AddImportTo(namespaceNode, directive); } else { UsingUtil.AddImportTo(file, directive); } } }