Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - [Table(Name = ConfigurationManager.AppSettings["pilot"])]
julia24 - Mo 23.02.15 15:05
Titel: [Table(Name = ConfigurationManager.AppSettings["pilot"])]
Hallo,
ich würde gerne meinen Tabellennamen nicht Hart in den Code schreiben, sondern von
der App.config abrufen.
Wie ihr schon in der Überschrift sehen könnt, versuche ich in meiner Klasse die die Tabelle darstellt folgendes als Attribut zu schreiben:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| using System.Configuration; using System.Collections.Specialized;
namespace ConsoleReport { [Table(Name = ConfigurationManager.AppSettings["pilot"])] public class Pilot {
private int pilotId; |
Und in der App.Config habe ich dann meine appSetting per <add> hinzugefügt und mit Werten versehen.
Leider zeigt er nun folgende Fehler:
Ein Attributargument muss ein constant-, typeof- oder Arrayerstellungsausdruck eines Attributparametertyps sein.
Was übersehe ich hier? Kann mir jemand von euch weiterhelfen?
Und btw, welche Daten sollten in die App.config abgespeichert werden? Gibt es da eine Art von Regel?
Moderiert von
Th69: Code- durch C#-Tags ersetzt
Palladin007 - Mo 23.02.15 15:27
Der Fehler ist genau der, der die ausgegeben wird.
Das liegt daran, dass die Parameter in die Assembly direkt mit rein geschrieben werden, als Metadaten. Das geht nur, wenn es Konstanten, Array-Erstellungen, oder Precompiler-Ausdrücke sind. Seit C# 6.0 müsste daher auch der nameof-Operator funktionieren, kannst es ja mal austesten.
Eine Möglichkeit, das zu umgehen, gibt es nicht.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!