.NET 序列化技术全解析
1. 解决事件和委托序列化问题
在处理事件和委托指向非可序列化类型时,会遇到序列化问题。为解决这一问题,可采用如下方法:
- 自定义方法 GetSerializableMembersEx 来替代标准的 FormatterServices.GetSerializableMembers 方法,该方法会排除委托字段。以下是具体代码:
Function GetSerializableMembersEx(ByVal type As Type) As MemberInfo()
Dim list As New List(Of MemberInfo)
For Each mi As MemberInfo In FormatterServices.GetSerializableMembers(type)
Dim fi As FieldInfo = TryCast(mi, FieldInfo)
If fi IsNot Nothing And Not _
GetType([Delegate]).IsAssignableFrom(fi.FieldType) Then
list.Add(mi)
End If
Next
Return list.ToArray()
End Function
- 在
GetDataObjectHelper和ISerializabl
超级会员免费看
订阅专栏 解锁全文
611

被折叠的 条评论
为什么被折叠?



