Liste aller .NET Attribute

Unter .NET gibt es eine Reihe von Attributen, welche für verschiedenste Zwecke notwendig sind. Natürlich ist es interessant zu erfahren welche Attribute es gibt. Auf den ersten Blick sieht es so aus, als ob es in der MSDN von Microsoft keine Auflistung der Attribute gibt.

Die Auflistung der Attribute in der MSDN

Die Auflistung der Attribute in der MSDN

Beim genaueren Hinschauen, wird man bemerken das es diese Liste gibt. Attribute werden in .NET von der „Attribute“-Klasse abgeleitet. Wenn man sich die Dokumentation für diese Klasse anschaut wird man feststellen, das es unten einen Bereich „Inheritance Hierarchy“ gibt, welcher alle abgeleiteten Klassen auflistet und somit auch alle Attribute.

Ausgegrauter Platzhaltertext in Textboxen unter .NET

Im Web kennt man solche Boxen zu genüge. Ein Suchfeld in welchem in ausgegrauter Schrift „Suchen“ oder ähnliches steht. Unter .NET ist das ganze leider nicht als vorgefertigtes Control vorhanden, so das man hier selbst Hand anlegen muss. Für ein solches Control nimmt man eine TextBox und setzt die Events „Enter“ und „Leave“ und befüllt sie wie folgt:

string grayedText="Search...";

private void tbSearch_Enter(object sender, System.EventArgs e)
{
	if(tbSearch.Text==""||tbSearch.Text==grayedText)
	{
		grayedText=tbSearch.Text;
		tbSearch.Text="";
		tbSearch.ForeColor=Color.Black;
	}
}

private void tbSearch_Leave(object sender, System.EventArgs e)
{
	if(tbSearch.Text=="")
	{
		tbSearch.ForeColor=Color.Gray;
		tbSearch.Text=grayedText;
	}
}

Damit steht in der TextBox der ausgegraute Text „Search…“ welcher verschwindet, sobald man den Fokus in die TextBox setzt. Der Platzhaltertext wird nur dann angezeigt, wenn kein Inhalt in der Textbox vorhanden ist.

Ungültige Zertifikate unter .NET

Wenn man mit nicht von einer Certificate Authority signierten Zertifikaten arbeitet, so wird man früher oder später folgende Fehlermeldung unter .NET zu sehen bekommen.

Das Remotezertifikat ist laut Validierungsverfahren ungültig.

Gegeben sei dabei folgendes Beispiel

SmtpClient client=new SmtpClient(host, port);
client.EnableSsl=true;

SSL ist zwar aktiviert, aber das Zertifikat kann in diesem Fall nicht validiert werden. Eine Methode um die Validierung abzuschalten ist dabei folgenden Einzeiler über diese Zeilen zu schreiben:

ServicePointManager.ServerCertificateValidationCallback=delegate { return true; };

Danach bekommt man keine Zertifikatswarnung mehr und kann die Verbindung nutzen.

MonoDevelop und die invalide Warnungsnummer

Manchmal ist Mono Develop etwas undurchsichtig. So bekam ich bei einem Projekt welches ich neu kompilieren wollte mehrmals die Fehlermeldung:

Error CS1904: `' is not a valid warning number (CS1904) (CSCL)

Der Compiler beschwert sich hierbei darüber, das eine spezifizierte Warnungsnummer nicht existiert. Allerdings ist es schwierig eine nicht vorhandene Nummer zu finden.

Die Compiler Optionen

Die Compiler Optionen

Die Lösung lag in den Compiler Optionen des Projektes. Hier befand sich unter „Warnungen ignorieren“ die Zeile:

0168 ; 0169; 0414; 0618; 0649

Das Problem an dieser Zeile waren die Leerzeichen, welche von MonoDevelop als zu ignorierende Warnungen interpretiert wurden. Und eine Warnung ohne Nummer kennt das System natürlich nicht. Nach dem Entfernen der Leerzeichen, kompilierte auch das Projekt wieder.

MonoDevelop und „invalid configuration mapping“

Nach der Änderung des Projektes von „Debug|x86“ zu „Debug“ (AnyCPU) meldete sich MonoDevelop mit der Meldung:

invalid configuration mapping

Das Problem liegt hier aber nicht am Projekt selbst, sondern an der Projektmappe (Solution).

Die fehlerhaften Einstellungen in der Projektmappe

Die fehlerhaften Einstellungen in der Projektmappe

Diese erreicht man indem man auf die Wurzel der Mappe klickt und dort den Punkt „Optionen“ auswählt. Unter „Erstellen“ -> „Konfigurationen“ findet man dann den Übeltäter. Hier erstellt man neue Konfigurationen und entfernt die alten. Danach sollte es mit dem umgestellten Projekt keinerlei Probleme mehr geben.