Visual studio 2010 在WCF下重用引用的程序集中的类型是否需要[Serializable]?

Visual studio 2010 在WCF下重用引用的程序集中的类型是否需要[Serializable]?,visual-studio-2010,wcf,serialization,.net-4.0,Visual Studio 2010,Wcf,Serialization,.net 4.0,不久前,我通过了解“在引用的程序集中重用类型”WCF选项。我们的目标是使用此选项在客户端和服务器之间共享一组类库;这些库实现了我们的业务对象模型,公开WCF服务的服务器和使用WCF服务的客户端都需要使用它们。我们正在使用.NET4和VisualStudio2010 我们运行了一些测试场景,似乎一切正常。然而,现在我们正在进行产品开发,我们发现WCF显然需要将共享类标记为可序列化。我们在初步测试中没有这样标记它们,而且一切正常,所以我不明白为什么我们现在收到一个WCF错误,要求我们将它们标记为可序

不久前,我通过了解“在引用的程序集中重用类型”WCF选项。我们的目标是使用此选项在客户端和服务器之间共享一组类库;这些库实现了我们的业务对象模型,公开WCF服务的服务器和使用WCF服务的客户端都需要使用它们。我们正在使用.NET4和VisualStudio2010

我们运行了一些测试场景,似乎一切正常。然而,现在我们正在进行产品开发,我们发现WCF显然需要将共享类标记为可序列化。我们在初步测试中没有这样标记它们,而且一切正常,所以我不明白为什么我们现在收到一个WCF错误,要求我们将它们标记为可序列化。从我所读到的内容来看,它似乎与一些没有无参数构造函数的类有关,但我不确定这一点


我的问题是:我们是否需要使共享类可序列化,或者是否有解决方法?是否有任何最佳实践或众所周知的策略来准备在WCF设置中在客户端和服务器之间共享的类库?谢谢。

另一种选择是根本不使用WSDL,而是通过添加相同的dll作为对客户端的引用来共享该dll。现在看看代理代码(reference.cs)的外观。可能有特定的clienty类(从ClientBase继承)可以保留,但主代码位于数据协定/可序列化类中,您可以通过添加dll引用获取这些类。

我不确定是否在跟踪您。正如我在OP中所描述的,我们已经计划通过将同一DLL添加为对客户端的引用来共享它。问题是,这种方法显然需要将DLL中的类标记为可序列化的,这就是我的问题。对此有何评论?