代码之家  ›  专栏  ›  技术社区  ›  jimplode

WCF-复杂对象-知识类型

  •  2
  • jimplode  · 技术社区  · 15 年前

    好吧,不知道怎么说,但会尽力的。

    WCFServiceA
    WCFServiceB
    WCFServiceC
    

    服务A将运行一些处理并决定将对象发送到服务B或C。

    [DataContract] 其中所有类的属性和所有属性的[DataMember]。

    到目前为止还不错。

    但现在我完全失去了对象的所有功能,因为这基本上是对象的序列化版本。

    KnownTypes "?? 提供基本的 DataContract DataMember 对于任何使用服务但不知道这些类型以便他们仍然可以创建这些对象以供服务运行的对象?

    :编辑: 试图澄清。

    我发送的对象可以附加一个“Policy”,这个Policy对象是一个类,可以是多种类型之一,车辆、房屋、生活、宠物策略等。

    但接收服务不会知道实际的类型。因此需要知识。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Suhumar    15 年前

    对这个问题的解释很好。我在这种方法中看到的退步是,如果要更新对象,比如添加新属性或删除一些属性,那么所有3个服务都需要用新程序集进行更新。

    或者创建一个只有属性的DTO(数据传输对象),并将其作为数据契约传递给服务,并将复杂的逻辑剥离到一个可以被服务引用的帮助类中。

    推荐文章