【问题标题】:WPF and WCF User Configurable FieldsWPF 和 WCF 用户可配置字段
【发布时间】:2009-12-10 15:26:50
【问题描述】:

我有一个要求,用户可以指定可变数量的用户定义字段,例如在 xml 文件中。这些字段具有显示在 GUI 中的用户友好名称,以及用于将字段的值持久保存和检索到数据库的代码。

问题是我需要我的 WCF 服务来使用用户定义字段的列表,这样当我从我的数据库加载一个对象时,这些字段及其值会被加载,但我还需要我的 WPF 客户端知道关于字段,这样当用户创建一种新类型的对象时,这些可配置字段可以作为输入以组合框的形式使用。

我尝试了多种方法,看起来将可配置值放入服务是最好的方法,然后让客户端在启动时从服务中检索值。但我想知道是否有一种“正确”的方式来做这种事情,因为这对于大多数企业应用程序来说似乎是一个非常明显的要求。

对不起,如果问题有点模糊,但我试图将其从我个人程序的复杂性中抽象出来。

谢谢 克里斯

【问题讨论】:

    标签: wpf xml wcf data-binding configurable


    【解决方案1】:

    如果不涉及 WPF 和 WCF,你会怎么做?如果只是一个类库调用另一个类库,它将如何工作?您将创建一个类来封装用户定义的字段,然后将该类的实例传递给另一段代码。

    在这里做同样的事情。

    【讨论】:

    • 谢谢约翰,你是对的,这就是我正在做的事情,我只是想也许我错过了一些东西。人们可能会在这种情况下使用某种模式。
    【解决方案2】:

    嗯,至于 WCF 服务 - 你总是可以定义一个类似的属性:

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

    然后将您的“OptionalProperty”类型也定义为数据协定 - 很可能只是一个将 KeyValue 作为字符串或其他内容的类 - 或您需要的任何内容。

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

    因为它是一个列表,所以你可以有零、一、二、五、一万五千等。

    这适用于您的场景吗?

    【讨论】:

    • 谢谢 marc,它有点复杂,因为每个对象类型有不同的用户定义字段列表。所以我正在注入和传递一个 > 的字典。但是,是的,这与我正在做的事情非常相似。谢谢!
    • 您当然应该验证只有特定对象类型的用户定义字段与该对象一起返回。但是,返回的数据结构在所有用户定义的字段中都是相同的:每个字段的代码、名称、值。
    猜你喜欢
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多