我很难为我的程序找出一个有用的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文件中使其可配置的闭包如下:
<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中,我很难将其转换为可用的格式
发布于 2009-11-06 18:22:15
你的意思是“易于创建配置文件”或“易于在我的程序中使用”中的可用。
我有一个类似的服务,我把它布置成这样
<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;https://stackoverflow.com/questions/1686624
复制相似问题