2012-01-30 114 views
0

我有一個應用程序遵循多個非常相似的規範,但對於相同的操作需要不同的動詞。例如,一種說法是jump,而另一種說法可能是hop基於規範的運行時可配置動詞

我正在尋找像CultureInfo(或可能甚至CultureInfo,但我覺得這是不好的做法)來定義這些動詞。它必須在運行時可配置(規格更改不應要求重新編譯)。

+0

「跳躍」和「跳躍」似乎屬於同一種文化。使用'CultureInfo'你可以區分不同的語言,國家等,但不是任意的規格。 – 2012-01-30 20:03:50

+0

@Olivier對,但我希望它的行爲與'CultureInfo'類似,只是符合規範。 – climbage 2012-01-30 20:08:25

回答

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文件很方便。即使不是程序員,也很容易閱讀和更改。

+0

這是我最終要做的事情,如果功能在C#中不存在的話。 XML會很好,因爲我的用戶是(或應該)熟悉它。 – climbage 2012-01-30 20:30:07