【发布时间】:2009-09-08 22:05:13
【问题描述】:
这是我正在处理的一个有点微妙的问题,希望能提供任何帮助。
我们有我们的生产模式项目,使用 .NET 2.0 构建。我们最近在 2.0 解决方案之外开发了一个 Silverlight 应用程序,它与 WCF 服务“对话”。该服务使用我们从 2.0 解决方案发布文件夹中复制的 DLL,以便访问我们原始解决方案的功能。
WCF 服务公开了源自我们的 2.0 解决方案的多个方法和对象。显然,它在内部使用 [DataContract] 和 [DataMember],而这些在我们的原始解决方案中不可用(因为它是 .NET 2.0,此时升级到 3.5 不是一个选项)。幸运的是,WCF 能够将我们的可序列化对象视为定义为契约,但由于某些奇怪的原因,只有成员变量(即使定义为私有!)被序列化;属性,甚至 settable 和 public 也永远不会序列化。
我们需要公开的对象类已经定义了 [Serializable()]。我环顾四周,找不到一个好的解决方案/解释。这可能与 .NET 3.0/3.5 如何“看到”我的 2.0 对象有关(它假设 [DataMember] 仅在变量上,从不在属性上)。
我的问题主要是如何只公开公共属性,而不公开私有变量?
提前感谢您对此的任何见解。
伊塔马尔。
【问题讨论】:
标签: .net wcf silverlight-2.0