2009-12-10 24 views
1

我有一個要求,用戶可以指定可變數量的用戶定義字段,例如在xml文件中。這些字段具有用戶友好的名稱,它顯示在GUI中,以及用於持久保存字段值並將其檢索到數據庫的代碼。WPF和WCF用戶可配置字段

問題是我需要我的WCF服務使用用戶定義字段的列表,以便當我從我的數據庫加載對象時,這些字段和它們的值被加載,但我也需要我的WPF客戶端也知道這些字段,以便當用戶創建一個新類型的對象時,這些可配置字段可以以組合框的形式作爲輸入。

我試過很多方法,它看起來像將可配置的值放入服務中是最好的方法,然後讓客戶端在啓動時從服務中檢索值。但即時通訊想知道是否有一種「適當」的方式來做這種事情,因爲它似乎是大多數企業應用程序的一個顯而易見的要求。

對不起,如果這個問題有點含糊,但我試圖從我的個人計劃的錯綜複雜中抽象出來。

感謝 克里斯

回答

1

你會怎麼做,如果WPF和WCF並沒有參與?如果它只是一個叫另一個的類庫,它將如何工作?您將創建一個類來封裝您的用戶定義的字段,然後您將該類的一個實例傳遞給另一段代碼。

在這裏做同樣的事情。

+0

謝謝約翰,你是對的,這幾乎是我在做什麼,我只是想,也許有一些我錯過了。某種模式可能是人們用於這種場景的。 – cjroebuck

0

那麼,作爲WCF服務 - 你總是可以定義一個屬性是這樣的:

[DataMember] 
List<OptionalProperty> optionalProperties { get; set; } 

,然後定義你的「OptionalProperty」類型的數據合同,太 - 很可能只是一個類KeyValue作爲字符串或東西 - 或任何你需要的。

[DataContract] 
class OptionalProperty 
{ 
    [DataMember] 
    string Key { get; set; } 

    [DataMember] 
    string Value { get; set; } 
} 

因爲它的東西列表,你可以有零,一,二,五,fiveteen上千等

可以爲您的方案的工作?

+0

感謝marc,它稍微複雜一點,因爲每個對象類型都有不同的用戶定義字段列表。所以我正在注入並傳遞>的字典。但是,這與我所做的非常相似。謝謝! – cjroebuck

+0

當然,您應該驗證只有特定對象類型的用戶定義字段纔會與該對象一起返回。但是,返回的數據結構在所有用戶定義的字段中都是相同的:每個字段的代碼,名稱,值。 –