我正在研究一個應該是「可插入」的系統 - 用戶應該能夠指定與之交互的各個部分(「可組合應用程序」)。SavableModelBase <>加載/保存 - 「更清潔」XML或配置工具?
作爲應用程序的一部分,我有一個「處理器」的概念,應該配置相關的配置類。
例如:
<processors>
<processor type="SomeAsm.SomeType1">
<configuration>
<SomeType1Prop1>value</SomeType1Prop1>
</configuration>
</processor>
<processor type="OtherAsm.SomeType2">
<configuration>
<SomeType2Prop1>value</SomeType2Prop1>
<SomeType2Prop2>value</SomeType2Prop2>
</configuration>
</processor>
</processors>
(當然SomeAsm.SomeType1
和OtherAsm.SomeType2
共享一些共同的接口或基類)
我認爲使用System.Configuration
但也有一些缺點 - (1)我必須明確地與名稱空間中的各種類(例如,ConfigurationElement
,ConfigurationElementsCollection
等)和(2)一起工作,以支持「任何」配置類實例,我需要t o在反序列化時實施一些工廠。
Catel的(真棒)SavableModelBase<>
類有一個保存/加載方法,非常方便和易於使用的替代方法。我用這種方法看到的唯一缺點是XML本身有點「冗長」,很難手動編輯它。
是否有某種方法來控制文件省略的「額外」標記(例如,刪除命名空間(xmlns:ctl2="http://schemas.datacontract.org/2004/07/InheritedConfiguration.CatelConfig"
,然後ctl2:SomeType2Prop1
)和graphid(graphid="5"
))?
或者,我可以使用一些「全局」編輯器嗎?
感謝,
託默
謝謝吉爾特 - 一如既往,非常機智和相關的答案。我可能只需要使用System.Configuration解決方案(: - /)來手動編輯文件非常重要,而且在這種情況下,鍵值方法並不適合。 – 2015-02-09 13:12:01