我很难为我的程序找出有用的app.config结构。
我正在做的是编写一个Windows服务,它在服务器上监视多个目录,以便上传文件。
我的问题是让我的程序可以配置为n个文件夹 在这n个文件夹中的每个文件夹中,我需要查看不同的文件类型集合 例如folder1:.dwg; folder2:.dwg; .doc; .xls;
然后当上传新文件时,例如.dwg文件上传到folder1, 然后我需要运行program1将dwg转换为dwf,而program2将dwg转换为.swf。 但只有当filetype是.dwg和folder = 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
中带到可用的地方答案 0 :(得分: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;