首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结构的app.config语法

结构的app.config语法
EN

Stack Overflow用户
提问于 2009-11-06 18:09:56
回答 1查看 1.9K关注 0票数 0

我很难为我的程序找出一个有用的app.config结构。

我正在做的是编写一个windows服务,它监视服务器上的几个目录中是否有上传的文件。

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

然后,在上载新文件时,例如将.dwg文件上载到folder1,则需要运行program1将dwg转换为dwf,运行program2将dwg转换为.swf。但仅当文件类型为.dwg且文件夹= folder1时才会出现这种情况

例如,如果将.dwg上传到folder2,则需要将其转换为pdf

我在app.config文件中使其可配置的闭包如下:

代码语言:javascript
复制
            <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中,我很难将其转换为可用的格式

EN

回答 1

Stack Overflow用户

发布于 2009-11-06 18:22:15

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

我有一个类似的服务,我把它布置成这样

代码语言:javascript
复制
<FolderConfiguration>
    <Folders>
        <Folder ImportFolder="c:\Foo"
                FileTypes=".xxx"
                Action="blabla"/>
        <Folder ImportFolder="C:\Bar
                FileTypes="..."/>
    </Folders>
</FolderConfiguration>

代码如下所示

代码语言:javascript
复制
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;
    }
}

然后我通过

代码语言:javascript
复制
      FolderConfigSection folderConfigSection = ConfigurationManager.GetSection("FolderConfiguration") as FolderConfigSection;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1686624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档