Лучший отвечающий
Можно ли сохранить в My.Settings экземпляр объекта типа Version?

Вопрос
-
Здравствуйте,
подскажите, можно ли в My.Settings сохранить экземпляр объекта типа Version? Я объявил переменную типа Version в настройках проекта, пока ничего в неё не сохранял, при чтении значения переменной оно было Nothing, после того как я сохранил в неё значение переменной и вызвал метод Save, при попытке её прочесть получаю все нули для свойств Major, Minor, Build. Что я делаю не так?
8 июля 2021 г. 13:48
Ответы
-
Imports System.IO Imports System.Runtime.Serialization.Formatters.Binary Module Module1 Sub Main() Dim _version As New Version("9.0.13") Console.WriteLine(_version.ToString()) SaveObject(_version) Console.WriteLine(LoadObject()) Console.ReadLine() End Sub Private Sub SaveObject(ByVal obj As Version) Dim _bf As BinaryFormatter Dim _buffer As Byte() Using _ms As New MemoryStream _bf = New BinaryFormatter _bf.Serialize(_ms, obj) _ms.Position = 0 _buffer = Array.CreateInstance(GetType(Byte), _ms.Length) _ms.Read(_buffer, 0, _buffer.Length) My.Settings.AppVersion = Convert.ToBase64String(_buffer) My.Settings.Save() End Using End Sub Public Function LoadObject() Dim _bf As BinaryFormatter Using _ms As New MemoryStream(Convert.FromBase64String(My.Settings.AppVersion)) _bf = New BinaryFormatter Return CType(_bf.Deserialize(_ms), Version) End Using End Function End Module
Вот такое вот решение- Помечено в качестве ответа SergejS 9 июля 2021 г. 8:26
9 июля 2021 г. 8:26
Все ответы
-
Привет,
Попробуйте решения описанные внизу:
How to save settings made in VB?
How to store a list of objects in application settings
Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные, если они Вам помогли.
8 июля 2021 г. 14:51 -
Насколько я уловил идею, она заключается в том чтобы объявить переменную, как String в Settings, затем сериализовать объект в строку и сохранить эту строку в Settings, а при чтении, десериализовать и преобразовать в объект?8 июля 2021 г. 16:35
-
Imports System.IO Imports System.Runtime.Serialization.Formatters.Binary Module Module1 Sub Main() Dim _version As New Version("9.0.13") Console.WriteLine(_version.ToString()) SaveObject(_version) Console.WriteLine(LoadObject()) Console.ReadLine() End Sub Private Sub SaveObject(ByVal obj As Version) Dim _bf As BinaryFormatter Dim _buffer As Byte() Using _ms As New MemoryStream _bf = New BinaryFormatter _bf.Serialize(_ms, obj) _ms.Position = 0 _buffer = Array.CreateInstance(GetType(Byte), _ms.Length) _ms.Read(_buffer, 0, _buffer.Length) My.Settings.AppVersion = Convert.ToBase64String(_buffer) My.Settings.Save() End Using End Sub Public Function LoadObject() Dim _bf As BinaryFormatter Using _ms As New MemoryStream(Convert.FromBase64String(My.Settings.AppVersion)) _bf = New BinaryFormatter Return CType(_bf.Deserialize(_ms), Version) End Using End Function End Module
Вот такое вот решение- Помечено в качестве ответа SergejS 9 июля 2021 г. 8:26
9 июля 2021 г. 8:26