나는 이런 종류의 직렬화되지 않는 이유 (Type.IsSerializable()
테스트로)이 형식이 직렬화되지 않는 이유는 무엇입니까?
<Serializable()> _
Public MustInherit Class WellKnownInstanceCollectionWithTypedId(Of T As WellKnownInstanceWithTypedId(Of IdT), IdT)
Inherits ReadOnlyCollection(Of T)
Public Sub New(ByVal list As IList(Of T))
MyBase.New(list)
End Sub
Public Function GetById(ByVal id As IdT) As T
Return Me.FirstOrDefault(Function(item) item.Id.Equals(id))
End Function
End Class
내가, 내 GetById
기능을 함께 할 수있는 뭔가가 알고 결정하기 위해 노력하고있어 나는 모든 좋은 것을 제거하면 때문이다. 누군가가이 유형을 직렬화 할 수 있도록 변경해야하는 것을 말해 줄 수 있습니까?
업데이트 : 나는 같은 내 GetById
구현을 변경
, 모든 것이 괜찮습니다. 분명히 이것은 (아래에 제안 된) Linq과 관련이 있습니다 - 왜 이것이 그렇게 자세한 이유를 말해 줄 수 있습니까?
Public Function GetById(ByVal id As IdT) As T
For Each i In Me
If i.Id.Equals(i) Then
Return i
End If
Next
Return Nothing
End Function
직렬화하려고하면 더 자세한 내용이있는 예외가 발생합니다. – Andrey
LINQ ('FirstOrDefault')가 아니라 클로저 ('Function')를 사용하여 로컬 변수에 액세스하는지 확인하고 싶습니다. 경우 매개 변수). 그러나 귀하의 문제를 재현 할 수 없습니다 :'GetType (WellKnownInstanceCollectionWithTypedId (Of,)). IsSerializable'은 .NET 3.5에서 원래의 정의로 "True"를 반환합니다. –