VB2012: Я пытаюсь сделать клон (а не копию) класса My.Settings. Я пробовал функцию DeepClone найти здесь на SOСделайте клон My.Settings
Public Function DeepClone(Of T)(ByVal a As T) As T
Using stream As New System.IO.MemoryStream
Dim formatter As New BinaryFormatter
formatter.Serialize(stream, a)
stream.Position = 0
Return DirectCast(formatter.Deserialize(stream), T)
End Using
End Function
, но это приводит к исключению
Тип 'MyCompany.MyDept.TestApp.My.MySettings' в Ассамблее «TestApp, Version = 10.1. 0,3, Culture = нейтральный, PublicKeyToken = null 'равен , не помеченный как сериализуемый.
Будучи настройками класса и сохраняется как XML, должен быть способ клонировать их, или я просто лаем неправильное дерево?
~ AGP
Пути вы клонирования это с помощью бинарной сериализации, который требует 'Serializable' атрибут, так что он может сериализовать все непубличные поля. Сериализация XML только сериализует публичные поля, поэтому он не требует этого атрибута. –
Достаточно ли вам недостаточно клонирования? – miroxlav
Хорошо, есть образец, за которым я могу следовать. Я попробую что-нибудь. – sinDizzy