我的项目有以下架构:
用户界面 - > Web服务器 - > App Server - >数据库
我正在为我的项目使用SOA架构。我的Web服务驻留在具有BL(业务层)/ BO(业务对象)/ DAL(数据访问层)的AppServer上。我正在使用Web服务公开BL。我通过使用WSDL.exe创建代理,在WebServer获取此Web服务的服务引用。现在我的问题是:
我是否需要将属性设置为我的BO(业务对象)以将其公开给WebServer,如下所示?
<Serializable()>
Public Class MyClass
End Class
或者我们根本不需要这个属性?我有点困惑。顺便说一句:我的Web服务器是一台不同的机器,AppServer是另一台机器。
答案 0 :(得分:0)
如果您要将MyClass作为Web服务的返回类型,那么是的,它必须是可序列化的。
答案 1 :(得分:0)
不,您对XMLSerializer序列化的类不需要此属性,这是用于Web服务的。
作为澄清的一点,Serializable属性通常仅在IFormatter实现者(例如BinaryFormatter或SoapFormatter)序列化对象时才需要,这两者都在.Net Remoting中使用。
This MSDN article是为.Net 1.1创建的,但仍然有很多好的信息。