Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Graph.ReadGraphFromStream ignores subgraph

Aperta
#330 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
csharp

Direzione di ricerca

Inizia riproducendo l’esempio fornito con Graph.WriteToStream e Graph.ReadGraphFromStream, quindi esamina come viene ricostruito l’unico sottografo prima di assegnare il risultato a gViewer.Graph. Confronta questo comportamento con la soluzione alternativa del sottografo temporaneo. Il lavoro è completato quando un grafo contenente un sottografo visualizza quel sottografo in gViewer dopo un round trip tramite stream.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

When only 1 subgraph is present in an XML stream the subgraph is not rendered in gviewer. The current workaround i've been using is to add a temporary subgraph before writing the graph to XML, then removing the temporary subgraph after reading the XML into a graph

See code for example

        Graph graph = new Graph("graph");
        var node1 = new Node("test1");
        graph.AddNode(node1);

        var subgraph = new Subgraph("subgraph1");
        graph.RootSubgraph.AddSubgraph(subgraph);
        subgraph.AddNode(node1);

        //uncommenting the next 2 lines will make subgraph1 appear. If left uncommented, subgraph1 will not appear
        //var subgraph2 = new Subgraph("delete") { IsVisible = false }; //IsVisible is not carried over in stream
        //graph.RootSubgraph.AddSubgraph(subgraph2);

        //write graph to xml
        string xml;
        using (var stream1 = new MemoryStream()) {
            graph.WriteToStream(stream1);
            stream1.Position = 0;
            using (var streamReader = new StreamReader(stream1)) {
                xml = streamReader.ReadToEnd();
            } 
        }

        //read graph from xml
        using (var stream = new MemoryStream()) {
            using (var streamWriter = new StreamWriter(stream)) {
                streamWriter.Write(xml);
                streamWriter.Flush();//otherwise you are risking empty stream
                stream.Position = 0;
                graph = Graph.ReadGraphFromStream(stream);
            }
        }

        //graph.RootSubgraph.RemoveSubgraph(graph.RootSubgraph.Subgraphs.Where(x => x.Id == "delete").FirstOrDefault());
        

        gViewer.Graph = graph;
Lingua principale
C#
Stelle
1.5k
Fork
317
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/automatic-graph-layout

Tutte le issue di microsoft/automatic-graph-layout

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.