{"id":159,"date":"2006-11-04T11:22:47","date_gmt":"2006-11-04T10:22:47","guid":{"rendered":"http:\/\/www.navision-blog.de\/2006\/11\/04\/eine-berwachte-kopierfabrik-5\/"},"modified":"2006-11-04T11:25:16","modified_gmt":"2006-11-04T10:25:16","slug":"eine-berwachte-kopierfabrik-5","status":"publish","type":"post","link":"http:\/\/www.navision-blog.de\/blog\/2006\/11\/04\/eine-berwachte-kopierfabrik-5\/","title":{"rendered":"Eine &uuml;berwachte Kopierfabrik (5)"},"content":{"rendered":"<p>Im f&#252;nften Teil meiner Serie m&#246;chte ich auf erweiterte M&#246;glichkeiten der Konfiguration des Dienstes eingehen. &#220;ber die ApplicationSettings ist es in Visual Studio ganz einfach m&#246;glich Strings, Integer usw. als globale Anwendungseinstellungen (web.config bei ASP.NET &#8211; sonst app.config)&nbsp;abzuspeichern:<\/p>\n<div class=\"wlWriterSmartContent\" id=\"57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:e9ed12ab-ed8b-4496-a205-5eb13e91c5b6\" contenteditable=\"false\" style=\"padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px\">\n<pre style=\"background-color:White;\"><div><!--\r\n\r\nCode highlighting produced by Actipro CodeHighlighter (freeware)\r\nhttp:\/\/www.CodeHighlighter.com\/\r\n\r\n--><span style=\"color: #0000FF; \">&lt;?<\/span><span style=\"color: #FF00FF; \">xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; <\/span><span style=\"color: #0000FF; \">?&gt;<\/span><span style=\"color: #000000; \">\r\n<\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">configuration<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n    <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">configSections<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n        <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">sectionGroup <\/span><span style=\"color: #FF0000; \">name<\/span><span style=\"color: #0000FF; \">=&quot;userSettings&quot;<\/span><span style=\"color: #FF0000; \"> type<\/span><span style=\"color: #0000FF; \">=&quot;...&quot;<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n            <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">section <\/span><span style=\"color: #FF0000; \">name<\/span><span style=\"color: #0000FF; \">=&quot;DBCopyService.Properties.Settings&quot;<\/span><span style=\"color: #FF0000; \">\r\n              type<\/span><span style=\"color: #0000FF; \">=&quot;...&quot;<\/span><span style=\"color: #FF0000; \"> \r\n              allowExeDefinition<\/span><span style=\"color: #0000FF; \">=&quot;MachineToLocalUser&quot;<\/span><span style=\"color: #FF0000; \"> \r\n              requirePermission<\/span><span style=\"color: #0000FF; \">=&quot;false&quot;<\/span><span style=\"color: #FF0000; \"> <\/span><span style=\"color: #0000FF; \">\/&gt;<\/span><span style=\"color: #000000; \">\r\n        <\/span><span style=\"color: #0000FF; \">&lt;\/<\/span><span style=\"color: #800000; \">sectionGroup<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n    <\/span><span style=\"color: #0000FF; \">&lt;\/<\/span><span style=\"color: #800000; \">configSections<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n    <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">userSettings<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n        <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">DBCopyService<\/span><span style=\"color: #FF0000; \">.Properties.Settings<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n            <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">setting <\/span><span style=\"color: #FF0000; \">name<\/span><span style=\"color: #0000FF; \">=&quot;ServerName&quot;<\/span><span style=\"color: #FF0000; \"> serializeAs<\/span><span style=\"color: #0000FF; \">=&quot;String&quot;<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n                <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">value<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">serverName<\/span><span style=\"color: #0000FF; \">&lt;\/<\/span><span style=\"color: #800000; \">value<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n            <\/span><span style=\"color: #0000FF; \">&lt;\/<\/span><span style=\"color: #800000; \">setting<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n        <\/span><span style=\"color: #0000FF; \">&lt;\/<\/span><span style=\"color: #800000; \">DBCopyService.Properties.Settings<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n    <\/span><span style=\"color: #0000FF; \">&lt;\/<\/span><span style=\"color: #800000; \">userSettings<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">    \r\n<\/span><span style=\"color: #0000FF; \">&lt;\/<\/span><span style=\"color: #800000; \">configuration<\/span><span style=\"color: #0000FF; \">&gt;<\/span><\/div><\/pre>\n<\/div>\n<p>Der Zugriff auf die Einstellung &#8220;ServerName&#8221;&nbsp;erfolgt dann&nbsp;ganz einfach &#252;ber <em>Properties.Settings.Default.ServerName<\/em>. Man kann sogar zur Laufzeit die Settings &#228;ndern und wieder abspeichern.<\/p>\n<p>Wenn man jedoch komplexere Strukturen in den Einstellungen ablegen m&#246;chte, kommt man um etwas Code nicht mehr herum. Im folgenden Beispiel lege ich&nbsp;die neue Sektion &#8220;entrances&#8221; an, um dort dann beliebig viele Eingangsverzeichnisse &#252;berwachen zu lassen:<\/p>\n<p>Eintrag in der app.config:<\/p>\n<div class=\"wlWriterSmartContent\" id=\"57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:0821cb6d-b1da-48d6-b01c-54c4629e2d67\" contenteditable=\"false\" style=\"padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px\">\n<pre style=\"background-color:White;\"><div><!--\r\n\r\nCode highlighting produced by Actipro CodeHighlighter (freeware)\r\nhttp:\/\/www.CodeHighlighter.com\/\r\n\r\n--><span style=\"color: #0000FF; \">&lt;?<\/span><span style=\"color: #FF00FF; \">xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; <\/span><span style=\"color: #0000FF; \">?&gt;<\/span><span style=\"color: #000000; \">\r\n<\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">configuration<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n    <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">configSections<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n      <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">sectionGroup <\/span><span style=\"color: #FF0000; \">name<\/span><span style=\"color: #0000FF; \">=&quot;DBCopyService&quot;<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n        <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">section <\/span><span style=\"color: #FF0000; \">name<\/span><span style=\"color: #0000FF; \">=&quot;entrances&quot;<\/span><span style=\"color: #FF0000; \"> \r\n          type<\/span><span style=\"color: #0000FF; \">=&quot;DBCopyService.EntranceSection,DBCopyService&quot;<\/span><span style=\"color: #FF0000; \"> <\/span><span style=\"color: #0000FF; \">\/&gt;<\/span><span style=\"color: #000000; \">\r\n       <\/span><span style=\"color: #0000FF; \">&lt;\/<\/span><span style=\"color: #800000; \">sectionGroup<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n    <\/span><span style=\"color: #0000FF; \">&lt;\/<\/span><span style=\"color: #800000; \">configSections<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n    <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">DBCopyService<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n      <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">entrances<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n        <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">entrance <\/span><span style=\"color: #FF0000; \">name<\/span><span style=\"color: #0000FF; \">=&quot;entrance1&quot;<\/span><span style=\"color: #FF0000; \"> path<\/span><span style=\"color: #0000FF; \">=&quot;C:\\Eingang\\&quot;<\/span><span style=\"color: #FF0000; \"> \r\n          mailAddress<\/span><span style=\"color: #0000FF; \">=&quot;mail@server.de&quot;<\/span><span style=\"color: #FF0000; \">  <\/span><span style=\"color: #0000FF; \">\/&gt;<\/span><span style=\"color: #000000; \">\r\n        <\/span><span style=\"color: #0000FF; \">&lt;<\/span><span style=\"color: #800000; \">entrance <\/span><span style=\"color: #FF0000; \">name<\/span><span style=\"color: #0000FF; \">=&quot;entrance2&quot;<\/span><span style=\"color: #FF0000; \"> path<\/span><span style=\"color: #0000FF; \">=&quot;C:\\Eingang2\\&quot;<\/span><span style=\"color: #FF0000; \"> \r\n          mailAddress<\/span><span style=\"color: #0000FF; \">=&quot;mail2@server.de&quot;<\/span><span style=\"color: #FF0000; \">  <\/span><span style=\"color: #0000FF; \">\/&gt;<\/span><span style=\"color: #000000; \">\r\n      <\/span><span style=\"color: #0000FF; \">&lt;\/<\/span><span style=\"color: #800000; \">entrances<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">\r\n    <\/span><span style=\"color: #0000FF; \">&lt;\/<\/span><span style=\"color: #800000; \">DBCopyService<\/span><span style=\"color: #0000FF; \">&gt;<\/span><span style=\"color: #000000; \">    \r\n<\/span><span style=\"color: #0000FF; \">&lt;\/<\/span><span style=\"color: #800000; \">configuration<\/span><span style=\"color: #0000FF; \">&gt;<\/span><\/div><\/pre>\n<\/div>\n<p>Zugriff &#252;ber Ableitung von ConfigurationElement, ConfigurationElementCollection und ConfigurationSection:<\/p>\n<\/p>\n<div class=\"wlWriterSmartContent\" id=\"57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:e4c153c8-b8de-47f9-b7c5-0452059fe4b2\" contenteditable=\"false\" style=\"padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px\">\n<pre style=\"background-color:White;\"><div><!--\r\n\r\nCode highlighting produced by Actipro CodeHighlighter (freeware)\r\nhttp:\/\/www.CodeHighlighter.com\/\r\n\r\n--><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System;\r\n<\/span><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System.Collections.Generic;\r\n<\/span><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System.Text;\r\n<\/span><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System.Configuration;\r\n\r\n<\/span><span style=\"color: #0000FF; \">namespace<\/span><span style=\"color: #000000; \"> DBCopyService\r\n{\r\n    <\/span><span style=\"color: #0000FF; \">public<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">sealed<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">class<\/span><span style=\"color: #000000; \"> EntranceElement : ConfigurationElement\r\n    {\r\n        <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;summary&gt;<\/span><span style=\"color: #008000; \">\r\n        <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> Gets or sets the name.\r\n        <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;\/summary&gt;<\/span><span style=\"color: #008000; \">\r\n        <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;value&gt;<\/span><span style=\"color: #008000; \">The name.<\/span><span style=\"color: #808080; \">&lt;\/value&gt;<\/span><span style=\"color: #808080; \">\r\n<\/span><span style=\"color: #000000; \">        [ConfigurationProperty(<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">name<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">, IsKey <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">true<\/span><span style=\"color: #000000; \">, IsRequired <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">true<\/span><span style=\"color: #000000; \">)]\r\n        <\/span><span style=\"color: #0000FF; \">public<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \"> Name\r\n        {\r\n            <\/span><span style=\"color: #0000FF; \">get<\/span><span style=\"color: #000000; \"> { <\/span><span style=\"color: #0000FF; \">return<\/span><span style=\"color: #000000; \"> (<\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \">)<\/span><span style=\"color: #0000FF; \">base<\/span><span style=\"color: #000000; \">[<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">name<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">]; }\r\n            <\/span><span style=\"color: #0000FF; \">set<\/span><span style=\"color: #000000; \"> { <\/span><span style=\"color: #0000FF; \">base<\/span><span style=\"color: #000000; \">[<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">name<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">] <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> value; }\r\n        }\r\n\r\n        <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;summary&gt;<\/span><span style=\"color: #008000; \">\r\n        <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> Gets or sets the mail address.\r\n        <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;\/summary&gt;<\/span><span style=\"color: #008000; \">\r\n        <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;value&gt;<\/span><span style=\"color: #008000; \">The mail address.<\/span><span style=\"color: #808080; \">&lt;\/value&gt;<\/span><span style=\"color: #808080; \">\r\n<\/span><span style=\"color: #000000; \">        [ConfigurationProperty(<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">mailAddress<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">, IsRequired <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">true<\/span><span style=\"color: #000000; \">)]\r\n        <\/span><span style=\"color: #0000FF; \">public<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \"> MailAddress\r\n        {\r\n            <\/span><span style=\"color: #0000FF; \">get<\/span><span style=\"color: #000000; \"> { <\/span><span style=\"color: #0000FF; \">return<\/span><span style=\"color: #000000; \"> (<\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \">)<\/span><span style=\"color: #0000FF; \">base<\/span><span style=\"color: #000000; \">[<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">mailAddress<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">]; }\r\n            <\/span><span style=\"color: #0000FF; \">set<\/span><span style=\"color: #000000; \"> { <\/span><span style=\"color: #0000FF; \">base<\/span><span style=\"color: #000000; \">[<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">mailAddress<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">] <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> value; }\r\n        }\r\n\r\n        <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;summary&gt;<\/span><span style=\"color: #008000; \">\r\n        <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> Gets or sets the path.\r\n        <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;\/summary&gt;<\/span><span style=\"color: #008000; \">\r\n        <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;value&gt;<\/span><span style=\"color: #008000; \">The path.<\/span><span style=\"color: #808080; \">&lt;\/value&gt;<\/span><span style=\"color: #808080; \">\r\n<\/span><span style=\"color: #000000; \">        [ConfigurationProperty(<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">path<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">, IsRequired <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">true<\/span><span style=\"color: #000000; \">)]\r\n        <\/span><span style=\"color: #0000FF; \">public<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \"> Path\r\n        {\r\n            <\/span><span style=\"color: #0000FF; \">get<\/span><span style=\"color: #000000; \"> { <\/span><span style=\"color: #0000FF; \">return<\/span><span style=\"color: #000000; \"> (<\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \">)<\/span><span style=\"color: #0000FF; \">base<\/span><span style=\"color: #000000; \">[<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">path<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">]; }\r\n            <\/span><span style=\"color: #0000FF; \">set<\/span><span style=\"color: #000000; \"> { <\/span><span style=\"color: #0000FF; \">base<\/span><span style=\"color: #000000; \">[<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">path<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">] <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> value; }\r\n        }\r\n    }\r\n}\r\n<\/span><\/div><\/pre>\n<\/div>\n<div class=\"wlWriterSmartContent\" id=\"57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:0830d308-aefe-4559-966b-278a826a3046\" contenteditable=\"false\" style=\"padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px\">\n<pre style=\"background-color:White;\"><div><!--\r\n\r\nCode highlighting produced by Actipro CodeHighlighter (freeware)\r\nhttp:\/\/www.CodeHighlighter.com\/\r\n\r\n--><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System;\r\n<\/span><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System.Collections.Generic;\r\n<\/span><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System.Text;\r\n<\/span><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System.Configuration;\r\n\r\n<\/span><span style=\"color: #0000FF; \">namespace<\/span><span style=\"color: #000000; \"> DBCopyService\r\n{\r\n    <\/span><span style=\"color: #0000FF; \">public<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">sealed<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">class<\/span><span style=\"color: #000000; \"> EntranceCollection \r\n      : ConfigurationElementCollection\r\n    {\r\n        <\/span><span style=\"color: #0000FF; \">protected<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">override<\/span><span style=\"color: #000000; \"> ConfigurationElement \r\n          CreateNewElement()\r\n        {\r\n            <\/span><span style=\"color: #0000FF; \">return<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">new<\/span><span style=\"color: #000000; \"> EntranceElement();\r\n        }\r\n\r\n        <\/span><span style=\"color: #0000FF; \">protected<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">override<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">object<\/span><span style=\"color: #000000; \"> GetElementKey(\r\n          ConfigurationElement element)\r\n        {\r\n            <\/span><span style=\"color: #0000FF; \">return<\/span><span style=\"color: #000000; \"> ((EntranceElement)element).Name;\r\n        }\r\n\r\n        <\/span><span style=\"color: #0000FF; \">public<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">override<\/span><span style=\"color: #000000; \"> ConfigurationElementCollectionType \r\n          CollectionType\r\n        {\r\n            <\/span><span style=\"color: #0000FF; \">get<\/span><span style=\"color: #000000; \">\r\n            { \r\n               <\/span><span style=\"color: #0000FF; \">return<\/span><span style=\"color: #000000; \"> \r\n                 ConfigurationElementCollectionType.BasicMap; \r\n            }\r\n        }\r\n\r\n        <\/span><span style=\"color: #0000FF; \">protected<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">override<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \"> ElementName\r\n        {\r\n            <\/span><span style=\"color: #0000FF; \">get<\/span><span style=\"color: #000000; \">{ <\/span><span style=\"color: #0000FF; \">return<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">entrance<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">; }\r\n        }\r\n    }\r\n}\r\n<\/span><\/div><\/pre>\n<\/div>\n<div class=\"wlWriterSmartContent\" id=\"57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:3358ff13-758d-42d7-85d9-d8c9e7996a6d\" contenteditable=\"false\" style=\"padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px\">\n<pre style=\"background-color:White;\"><div><!--\r\n\r\nCode highlighting produced by Actipro CodeHighlighter (freeware)\r\nhttp:\/\/www.CodeHighlighter.com\/\r\n\r\n--><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System;\r\n<\/span><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System.Collections.Generic;\r\n<\/span><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System.Text;\r\n<\/span><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System.Configuration;\r\n\r\n<\/span><span style=\"color: #0000FF; \">namespace<\/span><span style=\"color: #000000; \"> DBCopyService\r\n{\r\n    <\/span><span style=\"color: #0000FF; \">public<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">sealed<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">class<\/span><span style=\"color: #000000; \"> EntranceSection : ConfigurationSection\r\n    {\r\n        [ConfigurationProperty(<\/span><span style=\"color: #000000; \">&quot;&quot;<\/span><span style=\"color: #000000; \">, IsDefaultCollection <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">true<\/span><span style=\"color: #000000; \">)]\r\n        <\/span><span style=\"color: #0000FF; \">public<\/span><span style=\"color: #000000; \"> EntranceCollection Entrances\r\n        {\r\n            <\/span><span style=\"color: #0000FF; \">get<\/span><span style=\"color: #000000; \"> { <\/span><span style=\"color: #0000FF; \">return<\/span><span style=\"color: #000000; \"> (EntranceCollection)<\/span><span style=\"color: #0000FF; \">base<\/span><span style=\"color: #000000; \">[<\/span><span style=\"color: #000000; \">&quot;&quot;<\/span><span style=\"color: #000000; \">]; }\r\n        }\r\n    }\r\n}\r\n<\/span><\/div><\/pre>\n<\/div>\n<p>Mit Hilfe dieser Klassenstruktur (Element, Collection, Section) kann man nun bequem auf die Section zugreifen:<\/p>\n<div class=\"wlWriterSmartContent\" id=\"57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:6d86a98e-f97f-4cdc-9cc7-17b3eedfba24\" contenteditable=\"false\" style=\"padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px\">\n<pre style=\"background-color:White;\"><div><!--\r\n\r\nCode highlighting produced by Actipro CodeHighlighter (freeware)\r\nhttp:\/\/www.CodeHighlighter.com\/\r\n\r\n--><span style=\"color: #000000; \">EntranceSection entranceSection <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> \r\n  ConfigurationManager.GetSection(<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">DBCopyService\/entrances<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">) \r\n    <\/span><span style=\"color: #0000FF; \">as<\/span><span style=\"color: #000000; \"> EntranceSection;\r\n        \r\n<\/span><span style=\"color: #0000FF; \">foreach<\/span><span style=\"color: #000000; \"> (EntranceElement element <\/span><span style=\"color: #0000FF; \">in<\/span><span style=\"color: #000000; \"> entranceSection.Entrances)\r\n  Console.WriteLine(\r\n    <\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \">.Format(<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">Path {0}, Mail {1}<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">,\r\n      element.Path,\r\n      element.MailAddress));<\/span><\/div><\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Im f&#252;nften Teil meiner Serie m&#246;chte ich auf erweiterte M&#246;glichkeiten der Konfiguration des Dienstes eingehen. &#220;ber die ApplicationSettings ist es in Visual Studio ganz einfach m&#246;glich Strings, Integer usw. als globale Anwendungseinstellungen (web.config bei ASP.NET &#8211; sonst app.config)&nbsp;abzuspeichern: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt; &lt;configuration&gt; &lt;configSections&gt; &lt;sectionGroup name=&quot;userSettings&quot; type=&quot;&#8230;&quot;&gt; &lt;section name=&quot;DBCopyService.Properties.Settings&quot; type=&quot;&#8230;&quot; allowExeDefinition=&quot;MachineToLocalUser&quot; requirePermission=&quot;false&quot; \/&gt; &lt;\/sectionGroup&gt; &lt;\/configSections&gt; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[12,29],"tags":[],"_links":{"self":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/159"}],"collection":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/comments?post=159"}],"version-history":[{"count":0,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/159\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/media?parent=159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/categories?post=159"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/tags?post=159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}