基于规范的运行时可配置动词

时间:2012-01-30 19:52:43

标签: c#

我的应用程序遵循多个规范,这些规范非常相似,但需要不同的动词来执行相同的操作。例如,一个规范说jump,而另一个说hop

我正在寻找类似CultureInfo(或者甚至可能CultureInfo的东西,但我认为这是不好的做法)来定义这些动词。它必须在运行时可配置(规范更改不需要重新编译)。

1 个答案:

答案 0 :(得分:1)

您可以使用xml文件来存储动词

<?xml version="1.0" encoding="UTF-8" ?>
<verbs>
    <verb name="jump", spec="spec1">jump</verb>
    <verb name="jump", spec="spec2">hop</verb>
    <verb name="consume_food", spec="spec1">eat</verb>
    <verb name="consume_food", spec="spec2">feed</verb>
</verbs>

或按规范组织

<?xml version="1.0" encoding="UTF-8" ?>
<specs>
    <spec name="spec1">
        <verb name="jump">jump</verb>
        <verb name="consume_food">eat</verb>
    </spec>
    <spec name="spec2">
        <verb name="jump">hop</verb>
        <verb name="consume_food">feed</verb>
    </spec>
</specs>

或者为每个规范使用不同的文件

文件:spec1.xml

<?xml version="1.0" encoding="UTF-8" ?>
<verbs>
    <verb name="jump">jump</verb>
    <verb name="consume_food">eat</verb>
</verbs>

文件:spec2.xml

<?xml version="1.0" encoding="UTF-8" ?>
<verbs>
    <verb name="jump">hop</verb>
    <verb name="consume_food">feed</verb>
</verbs>

最后,在单独的配置文件中,定义选择了哪个规范。它可以是仅包含规范名称的纯文本文件,也可以是包含不同应用程序设置的另一个xml文件。

我个人认为使用旧式ini文件很方便。即使没有程序员也很容易阅读和更改。