2009-11-06 53 views
0

我很难搞清楚我的程序中有用的app.config结构。结构的app.config语法

我在做什么是写一个Windows服务,它观看上传文件的服务器上的几个目录。

我的问题是使我的程序可配置为n个文件夹,当 在这n个文件夹中的每一个中时,我需要注意文件类型的不同集合 folder1:.dwg; folder2:.dwg; .doc; .xls;

然后当一个新的文件上传,例如一个.dwg文件到folder1, 然后我需要运行program1将dwg转换为dwf,而program2将dwg转换为.swf。 但是,只有当如果一个的.dwg被上传以例如文件类型FOLDER2是的.dwg和文件夹的文件夹1 =

,那么它需要被转换为PDF

的关闭我来使这个配置在app.config文件是这样的:

  <Folder2 name="C:\inetpub\wwwroot\CAFM\Fotos" filetypes=".dwg;.pdf;"> 
       <action> 
        <add key="ExecutableAndPath" value="C:\Users\Me\Desktop\verydoc\dwg2vec.exe"/> 
        <add key="AtCommandBegin" value=""/> 
        <add key="AtCommandMiddle" value=""/> 
        <add key="AtCommandEnd" value=""/> 
       </action> 
      </Folder2> 
     </Folders> 
    </Raumplaner> 


    <DMS> 
     <Folders> 
      <Folder name="C:\inetpub\wwwroot\CAFM\Dokumente" filetypes=".dwg;.pdf;"> 
       <action> 
        <add key="ExecutableAndPath" value="C:\Users\Me\Desktop\verydoc\dwg2vec.exe"/> 
        <add key="AtCommandBegin" value=""/> 
        <add key="AtCommandMiddle" value=""/> 
        <add key="AtCommandEnd" value=""/> 
       </action> 
      </Folder> 
     </Folders> 
    </DMS> 
</Projects> 


enter code here 

但这不是我想要的。 我有困难把这个从app.config中使用可用

回答

3

你的意思是可用在“易于创建配置文件”或“易于在我的程序中使用”。

我有一个类似的服务,我奠定了它这样

<FolderConfiguration> 
    <Folders> 
     <Folder ImportFolder="c:\Foo" 
       FileTypes=".xxx" 
       Action="blabla"/> 
     <Folder ImportFolder="C:\Bar 
       FileTypes="..."/> 
    </Folders> 
</FolderConfiguration> 

的代码看起来像这样

public class FolderConfigSection : ConfigurationSection 
{ 
    [ConfigurationProperty("Folders", IsDefaultCollection = true)] 
    public FolderConfigCollection Folders { 
     get { return (FolderConfigCollection)base["Folders"]; } 
    } 
} 

public class FolderConfigElement : ConfigurationElement { 
    private const string ImportFolderConfigName = "ImportFolder"; 
    private const string FileTypesConfigName = "FileTypes"; 

    [ConfigurationProperty(ImportFolderConfigName, IsKey = true, IsRequired = true)] 
    public string ImportFolder { 
     get { return (string)this[ImportFolderConfigName]; } 
     set { this[ImportFolderConfigName] = value; } 
    } 

    [ConfigurationProperty(FileTypesConfigName, IsRequired = true)] 
    public string FileTypes { 
     get { return (string)this[FileTypesConfigName]; } 
     set { this[FileTypesConfigName] = value; } 
    } 
} 

[ConfigurationCollection(typeof(FolderConfigElement), AddItemName = "Folder", 
CollectionType=ConfigurationElementCollectionType.BasicMap)] 
public class FolderConfigCollection : ConfigurationElementCollection 
{ 
    protected override ConfigurationElement CreateNewElement() { 
     return new FolderConfigElement(); 
    } 

    protected override object GetElementKey(ConfigurationElement element) { 
     return (element as FolderConfigElement).ImportFolder; 
    } 
} 

,然后我通过

 FolderConfigSection folderConfigSection = ConfigurationManager.GetSection("FolderConfiguration") as FolderConfigSection; 
+0

访问它不帮助我很多。 我需要能够添加几个动作到一个文件夹,具体取决于文件类型。那就是问题所在。 – 2009-11-06 12:27:52

+0

configSections是什么样的? 矿不断崩溃... – 2009-11-06 14:12:51

+0

adrianm 2009-11-06 21:10:46