Hi,
also, die Werte in einer Anwendungskonfigurationsdatei werden beim auslesen als
NameValueCollection behandelt. Jedenfalls soviel ich weiß. Dabei ist der Name vom Typ string, und der Value auch.
Wenn Du also aus mehreren Zahlenwerten, die als Value Komma-separiert vorliegen, ein
Byte[] machen willst, so musst Du Dich selber darum kümmern!
Eine Möglichkeit hierbei wäre, dass Du das Ganze mit dem
ConfigurationManager einliest, die Werte splittest und in byte-Werte konvertierst:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| using System.Configuration; using System.Collections.Specialized;
private static byte[] GetValues() { object config = ConfigurationManager.GetSection("appSettings"); var values = config as NameValueCollection; if (values != null) { string werte = values["Wert"]; return Array.ConvertAll<string, byte>(werte.Split(new char[] { ',' }), new Converter<string, byte>(StringToByteConverter)); } return null; }
private static byte StringToByteConverter(string value) { int result; if (!int.TryParse(value, out result) || result > byte.MaxValue) throw new InvalidCastException(string.Format("Cannot convert \"{0}\" to byte-Value", value)); return (byte)result; } |
(Für den
ConfigurationManager muss eine Referenz auf System.Configuration eingebunden werden)
Aber beachte dabei: wenn mehrer Einträge in der Section mit dem gleichen Namen existieren, dann wird die letzte
NameValueCollection genommen. Und wenn mehrere Anwendungskonfigurationsdateien existieren, dann wird die erste genommen.
Meines Erachtens ziemlich unsicher, zumal der Benutzer auch darin rumpfuschen kann. Aber um mögliche Fehlerbehandlung musst Du Dich selber kümmern!
Marko