Mapear dependências em seu código nos gráficos de dependência
Quando desejar entender as dependências específicas em seu código, as mapeie com o Visual Studio Ultimate. Quando você quiser compreender as dependências em todo o seu código, visualize-os com a criação de mapas de código (Visual Studio Ultimate somente). Isso ajuda você a ver como o código se ajusta sem ler nos arquivos e linhas de código.
Seguem alguns vídeos:
A seguir, o que será necessário:
Código Visual c# .NET ou Visual Basic .NET em uma solução ou assemblies (. dll ou .exe)
Código C ou C++ nativo ou gerenciado em projetos do Visual C++, arquivos de cabeçalho (. h ou #include) ou binários
Atualização 3 do Visual Studio 2013 para mapear dependências em:
Projetos que compartilham código em vários aplicativos
Projetos e assemblies do X++ feitos com base nos módulos do .NET para Microsoft AX Dynamics
Você também pode arrastar assemblies e binários do Windows Explorer para um gráfico existente e obter relações com codificação de cores.
Comece aqui:
Para ver dependências gerais em sua solução, vá para o menu Arquitetura. Clique em Gerar Gráfico de Dependência, Para Solução.
-ou-
Para ver Dependências Específicas em sua solução, abra Gerenciador de Soluções. Selecione os projetos, referências do assembly, pastas, arquivos, tipos ou membros de seu interesse. Na barra de ferramentas Gerenciador de Soluções, clique em Criar um novo documento de gráfico .
Você também pode:
Ver as dependências entre os arquivos de origem C ou C++ e os arquivos de cabeçalho
Compartilhar gráficos de dependência
Criar gráficos por programação
Consultar dependências gerais
Consulte as dependências em sua solução
No menu Arquitetura, clique em Gerar Gráfico de Dependência, Para Solução.
Você obtém um gráfico que mostra os assemblies de nível superior e os links agregados entre eles. Quanto maior o vínculo agregado, mais dependências ele representa. O grupo Externos não contém nada fora da solução, inclusive dependências de plataforma. Os assemblies externos mostram apenas os itens usados.
Para ver dentro de um assembly, expanda-o. Mova o ponteiro do mouse sobre um assembly e, em seguida, escolha o botão de divisa (^) quando ele for exibido. (Teclado: selecione o item, em seguida pressione a tecla ADIÇÃO (+).) Para explorar níveis mais profundos do código, faça o mesmo para namespaces, tipos e membros.
Por padrão, as relações de contêiner aparecem como grupos, que podem ser expandidos ou recolhidos. Para ver as relações de grupo como links, no menu de atalho do gráfico, clique em Grupo, Desligar o Agrupamento.
Para examinar itens e dependências representados por um link agregado, selecione o link primeiro e, em seguida, abra o menu de atalho. Clique em Mostrar, Links participantes no diagrama atual ou Links participantes em um novo diagrama.
O Visual Studio expande os grupos em ambas as extremidades do link e mostra apenas esses itens e dependências que participam do link.
Para obter mais informações sobre um item ou um link, mova o ponteiro sobre o item até que uma dica de ferramenta seja exibida. Isso mostra as categorias representadas por um link.
Para ver o que a cor do link significa, na barra de ferramentas do gráfico, clique em Legenda.
Se você vir um link verde, ele pode não significar que exista apenas uma relação de herança. Também podem ser chamadas de método, mas estão ocultas pela relação de herança.
Para ver dependências entre membros nos grupos, clique em um item no gráfico.
Para identificar possíveis problemas em seu código, execute um analisador.
Consulte:
Consulte as dependências entre assemblies ou binários
Crie um gráfico em branco ou abra um gráfico existente (arquivo .dgml). Fora do Visual Studio, arraste os assemblies ou os binários para o gráfico.
Dica
Só será possível arrastar assemblies ou binários do Windows Explorer se você estiver executando o Windows Explorer e o Visual Studio no mesmo nível de permissões de UAC (User Access Control).Por exemplo, se UAC estiver ativado e você estiver executando o Visual Studio como Administrador, o Windows Explorer bloqueará a operação de arrastamento.Para resolver isso, verifique se o Visual Studio está em execução como Administrador, ou desative o UAC.No Windows 8, o Windows Explorer é o Explorador de Arquivos.
Criar um gráfico em branco
No Gerenciador de Soluções, abra o menu de atalho para o nó de solução de nível superior. Clique em Adicionar, Novo Item.
Em Instalado, clique em Geral.
No painel à direita, clique em Documento de Gráfico Direcionado.
Agora que você tem um gráfico em branco, que aparece na pasta de solução Itens da Solução.
Para abrir um novo gráfico em branco sem adicioná-lo à solução, no menu Arquivo, clique em Novo, Arquivo.
Para adicionar um gráfico em branco para um projeto de modelagem, abra o menu Arquitetura, clique em Novo Diagrama.
Perguntas e respostas
P: Por que demora tanto para criar o gráfico?
R: Quando você gera um gráfico pela primeira vez, o Visual Studio indexa todas as dependências que encontra. Esse processo pode levar algum tempo, especialmente para grandes soluções, mas isso irá melhorar o desempenho posterior. Se o código for alterado, o Visual Studio só reindexará o código atualizado. Se não quiser aguardar a conclusão do gráfico, você pode cancelar essa etapa a qualquer momento e tentar o seguinte:
Coloque no gráfico apenas as dependências que lhe interessam.
Antes de gerar o gráfico para uma solução toda, reduza o escopo da solução.
Embora o Visual Studio possa ser executado com 1 GB de memória, recomendamos que o computador tenha pelo menos 2 GB de memória para evitar longos atrasos enquanto o Visual Studio cria o índice de código e gera o gráfico.
Talvez demore mais tempo para criar gráficos ou adicionar itens a um gráfico do Gerenciador de Soluções quando a propriedade Copiar para Diretório de Saída de um item de projeto for definida como Copiar Sempre. Isso pode causar problemas em compilações incrementais e fazer o Visual Studio recompilar o projeto sempre. Para melhorar o desempenho, altere essa propriedade para Copiar se for mais recente ou PreserveNewest. Consulte Compilações incrementais.
P: Por que o Visual Studio não cria meu gráfico?
R: Isso pode acontecer porque nenhum dos projetos em sua solução foi criado com êxito. O Visual Studio gerará um gráfico se pelo menos um projeto for compilado com êxito. O gráfico mostrará dependências apenas para códigos criados com êxito. Se ocorrerem erros na compilação para determinados componentes, os erros desses componentes serão exibidos no gráfico. Verifique se um componente é efetivamente compilado e tem dependências nele antes de tomar decisões arquitetônicas com base no gráfico.
Consulte as dependências específicas
Por exemplo, suponha que você tem uma revisão de código para executar em alguns arquivos com alterações pendentes. Para ver as dependências nessas alterações, crie um gráfico de dependência desses arquivos.
Consulte as dependências específicas na solução
Abra o Gerenciador de Soluções. Selecione os projetos, referências do assembly, pastas, arquivos, tipos e membros de seu interesse.
Coloque os itens e os membros em um gráfico. Na barra de ferramentas Gerenciador de Soluções, clique em Criar um novo documento de gráfico .
Para localizar os itens que têm dependências em tipos ou membros, abra o atalho de membro ou de tipo no Gerenciador de soluções. Clique no tipo de dependência. Em seguida, selecione os resultados.
Para incluir hierarquias pai com os itens, na barra de ferramentas Gerenciador de Soluções, abra a lista Criar um novo documento de gráfico.... Clique em Novo Gráfico de Dependência com Ancestrais.
Você também pode arrastar itens para um gráfico existente ou em branco. Para criar um gráfico em branco, no menu Arquivo, clique em Novo, Arquivo, Documento de Gráfico Direcionado. Para incluir a hierarquia pai dos itens, mantenha a tecla CTRL pressionada ao arrastar itens.
Dica
Quando você adicionar itens de um projeto compartilhado entre vários aplicativos, como Windows Phone ou Windows Store, esses itens são exibidos no mapa com o projeto de aplicativo ativo no momento.Se você alterar o contexto para outro projeto de aplicativo e adicionar mais itens do projeto compartilhado, esses itens agora serão exibidos com o projeto de aplicativo recém-ativo.Operações realizadas com um item no mapa se aplicam apenas aos itens que compartilham o mesmo contexto.
Para explorar itens, expanda-os. Mova o ponteiro do mouse sobre um item e, em seguida, clique no botão de divisa (^) quando ele for exibido. Para expandir todos os itens, abra o menu de atalho do gráfico. Clique em Grupo, Expandir Tudo.
Dica
Essa opção não estará disponível se a expansão de todos os grupos criar um gráfico inutilizável ou problemas de memória.
Para ver os membros que estão no código mas não aparecem no gráfico, clique em Buscar Filhos Novamente . Esses membros de grupo aparecem com um estilo diferente para que você possa vê-los mais facilmente. Consulte Editar e personalizar gráficos de dependência.
Para ver mais itens relacionados a esses no gráfico, abra o menu de atalho do item. Clique em Mostrar e no tipo de relação que lhe interessa.
Para um assembly, clique em:
Assemblies Referenciados
Adicione assemblies a que este assembly faz referência. Os assemblies externos são exibidos no grupo Externos.
Fazendo Referência a Assemblies
Adicione assemblies na solução que fazem referência a este assembly.
Para obter uma classe, clique em:
Tipos de Base
Para obter uma classe, adicione a classe base e as interfaces implementadas.
Para obter uma interface, adicione as interfaces de base.
Tipos Derivados
Para obter uma classe, adicione as classes derivadas.
Para obter uma interface, adicione as interfaces derivadas e as classes de implementação ou structs.
Todos os Tipos de Base
Adicione a classe base ou a hierarquia de interface recursivamente.
Todos os Tipos Derivados
Para obter uma classe, adicione todas as classes derivadas recursivamente.
Para obter uma interface, adicione todas as interfaces derivadas e as classes de implementação ou structs recursivamente.
Hierarquia de Confinamento
Adicione a hierarquia do contêiner pai.
Tipos Usados
Adicione todas as classes e os membros que essa classe usa.
Tipos Cousados
Adicione todas as classes e seus membros que usam essa classe.
Para obter um método, clique em:
Hierarquia de Confinamento
Adicione a hierarquia do contêiner pai.
Métodos Chamados
Adicione métodos que esse método chama.
Métodos Cochamados
Adicione métodos que chamam esse método.
Métodos Substituídos em Tipos de Base
Para obter um método que substitui outros métodos ou implementa o método de uma interface, adicione todos os métodos abstratos ou virtuais em classes base que sejam substituídas e, se houver algum, o método da interface implementado.
Campos Referenciados
Adicione campos a que este método faz referência.
Para obter um campo, clique em:
Hierarquia de Confinamento
Adicione a hierarquia do contêiner pai.
Fazendo Referência a Métodos
Adicione métodos que façam referência a este campo.
Consulte as dependências específicas em assemblies ou binários
No menu Arquitetura, clique em Windows, Architecture Explorer.
Na primeira coluna, em Sistema de Arquivos, clique em Selecionar Arquivos.
Na caixa Abrir, encontre e selecione os assemblies ou os binários. Clique em Abrir para adicioná-los à próxima coluna no Architecture Explorer.
Na próxima coluna, selecione os assemblies ou os binários.
Por padrão, a próxima coluna mostra itens contidos pelos itens selecionados.
Dica
Para selecionar outros itens relacionados, expanda a coluna recolhida à direita da coluna com as seleções.Em Navegação em Nó, selecione os tipos de itens que lhe interessam.Em Navegação de Saída ou Navegação de Entrada, selecione os tipos de relações de seu interesse.Consulte Localizar código com o Architecture Explorer.
Encontre e selecione todos os itens que você deseja colocar no gráfico.
Para criar um novo gráfico, na barra de ferramentas Architecture Explorer, clique em Criar um novo documento gráfico com base em todos os nós selecionados .
-ou-
Para adicionar a seleção a um gráfico, siga estas etapas:
Abra o arquivo .dgml do gráfico ou crie um gráfico em branco.
Na barra de ferramentas do Architecture Explorer, clique em Adicionar todos os nós selecionados ao documento de gráfico visível no momento .
-ou-
Arraste itens do Architecture Explorer para o gráfico.
Consultar as dependências entre arquivos de origem e arquivos de cabeçalho do C e do C++
Se deseja criar gráficos mais completos para projetos do C++, defina a opção de compilador de informações do navegador (/FR) nesses projetos. Consulte /FR, /Fr (criar arquivo .Sbr). Do contrário, uma mensagem é exibida e solicita a definição dessa opção. Se você selecionar OK, isso definirá a opção apenas para o gráfico atual. Você pode optar por ocultar a mensagem para todos os gráficos posteriores. Se você ocultar essa mensagem, poderá exibi-la novamente. Defina a seguinte chave de registro para 0 ou exclua a chave:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\NativeProvider : AutoEnableSbr
Quando você abre uma solução que contém projetos do Visual C++, pode demorar algum tempo para atualizar o banco de dados do IntelliSense. Durante esse tempo, você talvez não consiga criar gráficos de dependência para arquivos de cabeçalho (.h ou #include) até o banco de dados do IntelliSense concluir a atualização. É possível monitorar o andamento da atualização na barra de status do Visual Studio. Para resolver problemas ou mensagens exibidas devido a certas configurações do IntelliSense estarem desabilitadas, consulte Gráficos de solução de problemas para os códigos C e C++.
Para ver as dependências entre todos os arquivos de origem e arquivos de cabeçalho em sua solução, no menu Arquitetura, clique em Gerar Gráfico de Dependência, Para Incluir Arquivo.
Para ver as dependências entre os arquivos abertos atualmente, os arquivos de origem relacionados e os arquivos de cabeçalho, abra o arquivo de origem ou o arquivo de cabeçalho. Abra o menu de atalho do arquivo em qualquer lugar dentro do arquivo. Clique em Gerar Gráfico de Arquivos de Inclusão.
Gráficos de solução de problemas para código C e C++
Esses itens não são suportados para os códigos C e C++:
Os tipos de base não são exibidos em gráficos que incluam a hierarquia pai.
A maioria dos itens do menu Mostrar não está disponível para o código do C e do C++.
Esses problemas podem ocorrer durante a criação de gráficos de dependência para os códigos C e C++:
Problema |
Possível causa |
Resolução |
---|---|---|
Falha na geração do gráfico de dependência. |
Nenhum projeto na solução foi compilado com êxito. |
Corrija os erros de compilação ocorridos e, em seguida, gere novamente o gráfico. |
O Visual Studio fica sem resposta quando você tenta gerar um gráfico de dependência no menu Arquitetura. |
O arquivo de banco de dados do programa (.pdb) pode estar corrompido. Um arquivo .pdb armazena informações de depuração, como o tipo, o método e as informações do arquivo de origem. |
Recompile a solução e, em seguida, tente novamente. |
Determinadas configurações do banco de dados de navegação do IntelliSense estão desabilitadas. |
Determinadas configurações do IntelliSense podem ser desabilitadas na caixa de diálogo Visual Studio Opções. |
Ative as configurações para habilitá-las. Consulte Opções, Editor de Texto, C/C++, Avançado. |
A mensagem Métodos Desconhecidos é exibida em um nó de método. Esse problema ocorre porque o nome do método não pode ser resolvido. |
O arquivo binário não pode ter uma tabela de realocação de base. |
Ative a opção /FIXED:NO no vinculador. Consulte /FIXED (endereço básico fixo). |
Talvez o arquivo de banco de dados do programa (.pdb) não tenha sido compilado. Um arquivo .pdb armazena informações de depuração, como o tipo, o método e as informações do arquivo de origem. |
Ative a opção /DEBUG no vinculador. Consulte /DEBUG (gerar informações de depuração). |
|
Não é possível abrir ou encontrar o arquivo .pdb em locais esperados. |
Verifique se o arquivo .pdb existe nos locais esperados. |
|
As informações de depuração foram removidas do arquivo .pdb. |
Se a opção /PDBSTRIPED tiver sido usada no vinculador, inclua o arquivo .pdb completo. Consulte /PDBSTRIPPED (remover símbolos privados). |
|
O chamador não é uma função, e é uma conversão no arquivo binário ou um ponteiro na seção de dados. |
Quando o chamador for uma conversão, tente usar _declspec(dllimport) para evitá-la. Consulte: |
Compartilhar gráficos de dependência
Compartilhar o gráfico com outros usuários do Visual Studio
Use o menu Arquivo para salvar o gráfico.
-ou-
Para salvar o gráfico como parte do projeto específico, abra o menu de atalho da superfície do gráfico. Clique em Mover <DependencyGraphName.dgml> para e o projeto no qual deseja salvar o gráfico.
O Visual Studio salva o gráfico como um arquivo .dgml que é possível compartilhar com outros usuários do Visual Studio Ultimate, do Visual Studio Premium e do Visual Studio Professional.
Dica
Antes de compartilhar um gráfico com as pessoas que usam o Visual Studio Premium e o Visual Studio Professional, não se esqueça de expandir todos os grupos, mostrar nós ocultos e links de grupo cruzado, além de recuperar todos os nós excluídos que você deseja que outras pessoas vejam no gráfico.Do contrário, outros usuários não poderão consultar esses itens.
O seguinte erro poderá ocorrer quando você salvar um gráfico que está em um projeto de modelagem ou foi copiado de um projeto de modelagem para outro local:
"Não é possível salvar fileName fora do diretório do projeto.Itens vinculados não são compatíveis."
O Visual Studio mostra o erro, mas cria a versão salva de qualquer maneira.Para evitar o erro, crie o gráfico fora do projeto de modelagem.Em seguida, é possível salvá-lo no local desejado.Apenas copiar o arquivo para outro local na solução e, em seguida, tentar salvá-lo não funcionará.
Exportar o gráfico como uma imagem de forma que seja possível copiá-lo para outros aplicativos, como o Microsoft Word ou o Powerpoint
Abra o menu de atalho da superfície de gráfico. Clique em Editar, Copiar Imagem.
Cole a imagem em outro aplicativo.
Exportar o gráfico como um arquivo XPS de forma que seja possível vê-lo em visualizadores XML ou XAML como o Internet Explorer
Abra o menu de atalho da superfície de gráfico. Clique em Salvar como XPS.
Navegue para onde você deseja salvar o arquivo.
Nomeie o gráfico. Verifique se a caixa Salvar como tipo está definida como Arquivos XPS (*.xps). Clique em Salvar.
Criar gráficos por programação
Para criar documentos de gráfico (arquivos .dgml) para que você possa trabalhar durante o processamento em lote, execute a ferramenta de linha de comandos GraphCmd.exe. Por exemplo, para localizar as dependências que foram alteradas entre as compilações, execute a ferramenta após cada compilação. Para localizar essa ferramenta, examine essa pasta: C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE.
GraphCmd.exe dá suporte apenas ao código do .NET e gera informações de dependência apenas para assemblies ou arquivos .dgml, e não para o código-fonte na solução do Visual Studio ou os arquivos de projeto. Como GraphCmd.exe é executado fora do Visual Studio, o suporte para ações em consultas DGQL é limitado.
Esta é a sintaxe para GraphCmd.exe:
GraphCmd -? -all -exceptions -input File_Name -query File_Name -exec "DGQL_Statement" -output File_Name -path alias=path
Aqui estão as opções para GraphCmd.exe:
É possível especificar essas opções mais de uma vez: -input, -query, -exec e -path.
-? |
Exiba a ajuda de GraphCmd.exe. |
-all |
Inclua todos os resultados de consulta intermediários, e não apenas do último conjunto de nós. |
-exceptions |
Relate as exceções de consulta como um arquivo de documento de gráfico (.dgml). |
-input File_Name |
Processe o arquivo .dgml especificado. Isso é útil no pós-processamento de um arquivo .dgml grande e na filtragem dele, de forma que seja possível visualizá-lo mais facilmente no Visual Studio. |
-query File_Name |
Execute o arquivo Directed Graph Query Language (DGQL ou .dgql) especificado. Consulte:
|
-exec "DGQL_Statement" |
Execute a instrução DGQL especificada. Consulte Noções Básicas Sobre DGQL (Directed Graph Query Language). |
-output File_Name |
Saia do arquivo .dgml especificado. |
-path alias=path |
Especifique um novo alias a ser usado na entrada e na saída de documentos DGML. Por exemplo:
Consulte Aliases para Caminhos Mais Usados. |
Aliases para caminhos mais usados
Os aliases para caminhos mais usados reduzem o tamanho do arquivo .dgml e o tempo necessário para carregar ou salvar o arquivo. Para criar um alias, adicione uma seção <Paths></Paths> ao final do arquivo .dgml. Nesta seção, adicione um elemento <Path/> para definir um alias para o caminho:
<Paths>
<Path Id="MyPathAlias" Value="C:\...\..." />
</Paths>
Para referenciar o alias de um elemento no arquivo .dgml, coloque o Id do elemento <Path/> entre um cifrão ($) e parênteses (()):
<Nodes>
<Node Id="MyNode" Reference="$(MyPathAlias)MyDocument.txt" />
</Nodes>
<Properties>
<Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
</Properties>
Para editar arquivos .dgml, consulte Editar e personalizar gráficos de dependência.
Saiba mais sobre o Idioma de Consulta do Gráfico Direcionado (DGQL)
DGQL é uma linguagem de consulta leve que é possível usar na compilação do DGML. Uma instrução DGQL segue um padrão alternado de seleção e ações de nó de forma que cada seleção de nó crie a entrada para a próxima ação, cuja saída se torna a entrada da próxima seleção de nó e assim por diante.
O formato de uma instrução DGQL é:
<node selection> / <action> / <node selection> / <action> / ...
A seguinte tabela descreve a sintaxe DGQL usada para selecionar nós:
* |
Selecione todos os nós. |
+ "text" |
Selecione todos os nós que contenham "text". |
+ Id.Equals("text") |
Selecione todos os nós cujo Id seja igual a "text". |
+ Background.Contains("text") |
Selecione todos os nós cujo atributo Background tenha um valor que contenha a cadeia de caracteres "text". |
+ "text1" + "text2" + ... |
Selecione todos os nós que correspondam a "text1" ou "text2". |
+ MyProperty="True" |
Selecione todos os nós que tenham uma propriedade nomeada MyProperty cujo valor seja "True". |
- Label.Contains("text") |
Selecione todos os nós, exceto aqueles que tenham um atributo Label que Contains a cadeia de caracteres "text". |
+ Category.Is("MyCategory") |
Selecione todos os nós que tenham uma categoria chamada MyCategory ou que sejam herdados de MyCategory. |
A seguinte tabela descreve exemplos de ações diretas que podem ser realizadas em nós selecionados:
Ação de exemplo |
Descrição |
---|---|
Microsoft.Contains |
Retorne todos os nós contidos pelos nós de entrada. É possível substituir Contains por uma categoria de link diferente. |
Microsoft.Open |
Abra o código-fonte dos nós de entrada. Dica Funciona somente dentro de Visual Studio. |
Microsoft.AllOutBoundLinks |
Retorne todos os nós que sejam alvo de um link de saída dos nós de entrada. |
Microsoft.AllInboundLinks |
Retorne todos os nós que sejam a extremidade de origem de um link para os nós de entrada. |
Microsoft.Core.CreateGroupsByProperties |
Invoque a ação GroupByProperties. |
Microsoft.AllNodes |
Retorne todos os nós do gráfico inteiro até aqui. |
As ações orientadas por dados selecionam itens com base apenas nos dados nos nós de entrada e nos links. Durante a comparação de categorias usando-se ações controladas por dados, as categorias herdadas são incluídas. A seguinte tabela descreve exemplos de ações controladas por dados:
Tipo |
Descrição |
---|---|
Node:Both:Category |
Retorne todos os nós que tenham a categoria Category e estejam conectados com os nós de entrada por um link que aponte em qualquer direção. |
Link:Both:Category |
Retorne todos os nós que estejam conectados com os nós de entrada por um link que apontem em qualquer direção e tenham a categoria Category. |
Link:Backward:Category |
Retorne todos os nós que apontem para os nós de entrada com um link que tenha a categoria Category. |
Link:Forward:Category |
Retorne todos os nós que apontem dos nós de entrada com um link que tenha a categoria Category. |
Dicas
Normalmente, há uma ação "padrão" para um determinado conjunto de nós de entrada, selecionado automaticamente pelo Architecture Explorer. Para obter o mesmo comportamento, use uma ação vazia: //
Como o espaço em branco não é significativo no DGQL, é possível formatar a consulta para caber em uma linha, se necessário. Isso é útil quando você usa a opção –exec com GraphCmd.
Ao depurar DGQL, use a ação "Execute Expanded" no Architecture Explorer para ajudar a ver cada etapa da consulta e encontrar a etapa que não está produzindo os resultados esperados.
Exemplo
A seguinte instrução DGQL executa uma consulta, conforme descrito nas seguintes etapas:
+ Id.Equals("Microsoft.Solution.ClassView") / "Microsoft.Solution.ClassView" / * / "Node:Both:CodeSchema_Class" / + CodeSchemaProperty_IsPublic.Equals("True")
Clique no nó Modo de Exibição de Classe na primeira coluna do Architecture Explorer.
Execute a ação "Microsoft.Solution.ClassView", retornando todos os namespaces na solução.
Use * para selecionar todos os namespaces.
Selecione todos os nós que tenham a categoria CodeSchema_Class e estejam relacionados a esses namespaces por um link em qualquer direção. Eles normalmente serão links de confinamento.
Filtre as classes resultantes somente àquelas que tenham a propriedade CodeSchemaProperty_IsPublic="True".
Tecnicamente, a ação "Microsoft.Solution.ClassView" é desnecessária, pois é a ação "padrão" do nó Modo de Exibição de Classe. Portanto, é possível substituir essa ação por // para simplificar a consulta e formatá-la em uma única linha da seguinte maneira:
+Id.Equals("Microsoft.Solution.ClassView")//*/"Node:Both:CodeSchema_Class"/+CodeSchemaProperty_IsPublic.Equals("True")
O que mais posso fazer?
Onde posso obter mais informações?
Categoria |
Links |
---|---|
Fóruns |
|
Blogs |