用户可写配置文件的示例?

时间:2011-06-24 16:14:09

标签: c# .net configuration-files dsl

我的(C#4.0)项目视野中引入了一个用户配置功能,其中我的同事需要获得配置我们的软件或预运行的能力,以便它以任何方式履行其职责需要。每次运行(它们往往是冗长的模拟)都有自己的配置文件。

总的来说,他们想要定义“产品”,相当复杂的野兽,包括运行时参数,IOC风格的信息(Strategy Pattern所需的计算类列表 - 类似的方式)和更多的东西除了。值可以是数字(整数和浮点),字符串,日期和列表。

我们知道,随着新产品的推出或现有产品的发展,内容将会发生变化(例如新的参数名称)。

我看过的选项包括(按照我的估计)语法沉重的降序:

  1. XML
  2. YAML
  3. JSON
  4. a DomainSpecific Language
  5. 某些特定于应用的文字符号
  6. 我正在寻找或多或少类似事物的例子:文件格式,从技术和/或用户角度讨论利弊。

    (我希望将来某个时候我们会考虑为这些练习引入图形前端,但我们需要能够在此之前的某个时间配置执行。)

    编辑/更新:我特别关注从技术角度来看易于实施:我正在寻找一些我的(非常聪明,但不是技术导向的)用户最好能够最大限度地减少编写可能相当复杂的配置的难度。

    也许“配置”是一个糟糕的选择 - 如果我们将其称为“模拟定义文件”,并认为每个用户将随着时间的推移创建许多这些文件?

2 个答案:

答案 0 :(得分:0)

如果所有这些都可以以常规的,面向属性的方式描述,那么听起来XML就能满足您的需求。 C#具有出色的XML处理功能,包括内置的序列化器和LINQ,可以节省大量的代码实现时间。此外,从架构创建基于表单的UI非常简单。

我建议坐下来创建一个伪模式,看看这是否会处理你的用例,以帮助确定这种方法是否适合你。

例如,看一下由XML驱动的众多插件系统之一。我推荐的第一个是Eclipse。

答案 1 :(得分:0)

在C#中最简单的方法是使用内置类System.Configuration,首先应该使用Visual Studio添加配置文件,而不是编辑它的属性。这是How To