dotnet-snippets.de
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1410 | Anzahl registrierter User: 1443 | Besucher online: 254
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Partner von Codezone.de


Member of Microsoft Community Leader/Insider Program (CLIP)

Konvertiert Code nach Example für XML-Kommentar


Autor: Rainer Hilmer
Sprache: C#
Bewertung: 3,4
(1 Bewertung)

Anzahl der Aufrufe: 2387
  
Kick it on dotnet-kicks.de  

Beschreibung:

Dokumentiert ihr euren Code? Klar! Geht es euch auch auf den Zeiger wenn ihr jede Zeile eines BeispielCodes mit /// versehen müßt?
Dann ist dieses Snippet für euch!
Die Klasse hat nur zwei öffentliche Methoden: ConvertTextToXmlExample und CopyToClipboard. Dem entsprechend einfach ist sie zu handhaben. Hier ist ein Beispiel für das was passiert:

Vorher:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main()
{
Console.WriteLine("Hello world");
}
}
}


Nachher:

/// <example>
/// <code>
/// <![CDATA[
/// using System;
/// using System.Collections.Generic;
/// using System.Linq;
/// using System.Text;
///
/// namespace ConsoleApplication1
/// {
/// class Program
/// {
/// static void Main()
/// {
/// Console.WriteLine("Hello world");
/// }
/// }
/// }
/// ]]>
/// </code>
/// </example>


Mit einer kleinen Windows Forms Anwendung heißt es nur noch Copy, Button Click und Paste. Fertig ist die Laube!
Hier noch eine Beispielapplikation:

using System;
using System.Windows.Forms;

namespace ConvertCode2HelpExample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
FormBorderStyle = FormBorderStyle.Fixed3D;
MaximizeBox = false;
SizeGripStyle = SizeGripStyle.Hide;
}

private void Button_Convert_Click(object sender, EventArgs e)
{
if(!Clipboard.ContainsText())
MessageBox.Show(
"Das Clipboard enthält keinen Text.",
"Fehler",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
else
{
CodeConverter.CopyToClipboard(
CodeConverter.ConvertTextToXmlExample(
Clipboard.GetText()));
}
}
}
}


Abgelegt unter: XML Kommentar, Dokumentation, XML.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using DotNetExpansions.Forms; // For the fading MessageBox.
// You can get the code at
// http://dotnet-snippets.de/dns/fading-messagebox-ohne-buttons-SID694.aspx
// Or check out a copy of my DotNetExpansions project at // http://cyrons.svn.beanstalkapp.com/general/DotNetExpansions/trunk

namespace ConvertCode2HelpExample
{
   public static class CodeConverter
   {
      // Facade      
      public static string ConvertTextToXmlExample(string text)
      {
         var lines = SplitText2LinesOf(text);
         lines = PrependXmlCommentSignsTo(lines);
         var result = Concatenate(lines);
         result = PrependExampleHeaderTo(result);
         return AppendExampleFooterTo(result);
      }

      private static IEnumerable<string> SplitText2LinesOf(string text)
      {
         char[] splitCharacters = { '\n' };
         if(text == null)
            return null;
         string[] lines = text.Split(splitCharacters);
         var query = lines.Select(value => value.TrimEnd('\r'));
         return query;
      }

      public static void CopyToClipboard(string result)
      {
         try
         {
            Clipboard.SetDataObject(result, true);
            IFadingMessageBox fmb = new FadingMessageBox();
            fmb.ShowAndFade("Das Ergebnis wurde im Clipboard gespeichert.",
            "Hinweis", 1.0, FadingMessageBox.FadingMessageBoxIcon.Information);
         }
         catch(Exception)
         {
            if(DialogResult.Retry ==
               MessageBox.Show("Das System ist zur Zeit überlastet." +
                " Der Clip wurde nicht gespeichert. Bitte noch einmal probieren.",
                "FEHLER!", MessageBoxButtons.RetryCancel, MessageBoxIcon.Warning))
            {
               CopyToClipboard(result);
            }
         }
      }

      private static IEnumerable<string> PrependXmlCommentSignsTo(IEnumerable<string> lines)
      {
         if(lines == null)
            return null;
         if(lines.Count() == 0)
            return null;
         var query = lines.Select(value => "/// " + value);
         return query;
      }

      private static string Concatenate(IEnumerable<string> lines)
      {
         if(lines == null)
            return null;
         if(lines.Count() == 0)
            return null;
         string query = lines.Aggregate((build, line) => build + "\r\n" + line);
         query += "\r\n";
         return query;
      }

      private static string PrependExampleHeaderTo(string text)
      {
         const string exampleHeader = "/// <example>\r\n"
                                      + "/// <code>\r\n"
                                      + "/// <![CDATA[\r\n";

         return exampleHeader + text;
      }

      private static string AppendExampleFooterTo(string text)
      {
         const string exampleFooter = "/// ]]>\r\n"
                                      + "/// </code>\r\n"
                                      + "/// </example>";
         return text + exampleFooter;
      }
   }
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Rainer Hilmer schrieb am:  30.09.2009 00:29:02

Die DB hat dieses Snippet leider zweimal verloren und als ich es zuletzt wieder einstellte, war einiges an Müll dabei, den ich jetzt bereinigt habe. Ich bitte um Entschuldigung.


Diese Snippets könnten für Sie interessant sein:
[C#] Treeview in XML schreiben
[C#] Objekt in XML speichern (Serialisieren)
[ASP.net] XML - HTML Transformation
[C#] Generische XML-Serialisierung
[C#] CSV und XML-Datei Datenbank-Import (incl. valid-check)
[C#] Währungskurse in Datenbank speichern
[VB.NET] Einfaches Erstellen einer XML Datei in .Net
[C#] XML in DataTable laden
[C#] Intellisense Unterstützung für XML Dateien für LINQ
[C#] user.config und generische Listen
[C#] Dataset verschlüsseln
[C#] Xml Datei entschlüsseln
[VB.NET] Objekt mit dem XmlSerializer serialisieren
[VB.NET] XML Datei mit dem XmlSerializer deserialisieren
[ASP.net] XML Daten über einen Internet Proxy abfragen
[C#] XML-Programmkonfiguration / -Steuerung
[C#] Formatieren von Sonderzeichen für XML
[C#] Binärdatei in XML File speichern
[C#] Binärdatei aus XML Datei auslesen und abspeichern
[C#] leere Knoten aus XML Document entfernen
[C#] XML Kommentare entfernen
[C#] Austauch von kritischen Zeichen in einem String...
[C#] Excel-Export ohne Excel (auch für Web)
[C#] Ini-Datei-Klasse
[C#] TreeView Export To Xml OR Import from XMl
[C#] Autom. Laden & Speichern von Position und Größe eines Forms
[VB.NET] Bild als XML Datei Speichern
[C#] Ein Object serialisieren
[C#] Ein Object deserialisieren
[C#] XML Encoding eines XmlDocument ändern
[C#] XMLDocument in XDocument konvertieren
[C#] Rss Feed in XMLDocument laden
[VB.NET] XML Datei in DataSet einlesen
[C#] Image zu Base64 konvertieren und zurück
[C#] XMLIO - einfachstes (De)serialisieren von/zu XML-Dateien
[C#] Generisch XML De-/ Serialisieren
[C#] XML generieren mit Linq to XML
[C#] 3 arten der Serialisierung bzw Deserialisierung
[C#] Spracherkennung
[C#] Wunderground Wettervorhersage

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.