我想知道在创建公共嵌套/内部WCF类(DataContracts)之后是否存在任何问题。如果是,那么这些问题是什么。
(我的一位同事在互联网上看到过一些关于这些问题的内容,但它们似乎特定于某些情况,我们没有找到明确的'是的它会起作用'或'不,嵌套类不起作用WCF',因此我猜他们通常会工作。)
答案 0 :(得分:1)
数据合同是您的服务公开的公共API的一部分。尽管在代码中通过普通的CLR类表示(尽管用属性修饰) - 不要被愚弄 - 它们实际上是通过线连接到字符串以供客户端/服务器使用。因此,从服务导向的角度来看,我们必须摆脱诱惑,将它们与面向对象的概念联系起来。
使用继承,接口抽象和嵌套类都处理OO概念(多态,抽象和访问),即使在WCF中技术上可能有部分/全部(例如通过KnownTypes
属性) - 只是因为你可以做某事 - 这并不意味着你应该。
我毫不怀疑有一些方法可以实现正确的序列化行为,以使WCF识别嵌套类。但是,在这样做的过程中,我怀疑你违背了服务导向 - 因此没有充分利用面向服务架构的全部功能。