我们是否需要为App Server上的BO类提供<serializable()>属性?</serializable()>

时间:2011-12-05 20:51:23

标签: asp.net vb.net serialization n-tier-architecture

我的项目有以下架构:

用户界面 - &gt; Web服务器 - &gt; App Server - &gt;数据库

我正在为我的项目使用SOA架构。我的Web服务驻留在具有BL(业务层)/ BO(业务对象)/ DAL(数据访问层)的AppServer上。我正在使用Web服务公开BL。我通过使用WSDL.exe创建代理,在WebServer获取此Web服务的服务引用。现在我的问题是:

我是否需要将属性设置为我的BO(业务对象)以将其公开给WebServer,如下所示?

<Serializable()>
Public Class MyClass

End Class

或者我们根本不需要这个属性?我有点困惑。顺便说一句:我的Web服务器是一台不同的机器,AppServer是另一台机器。

2 个答案:

答案 0 :(得分:0)

如果您要将MyClass作为Web服务的返回类型,那么是的,它必须是可序列化的。

答案 1 :(得分:0)

不,您对XMLSerializer序列化的类不需要此属性,这是用于Web服务的。

作为澄清的一点,Serializable属性通常仅在IFormatter实现者(例如BinaryFormatter或SoapFormatter)序列化对象时才需要,这两者都在.Net Remoting中使用。

This MSDN article是为.Net 1.1创建的,但仍然有很多好的信息。