我的VS2013 VB應用程序當前將設置保存到註冊表中,並且它已經發展到了困擾着我的地步。所以我想將設置(字符串)保存到文件。獎勵是他們可以在網絡上並被多個用戶使用。可能有數百甚至數千行。什麼是首選格式?舊的INI,CSV,XML?就我所知,這種情況下Settings文件似乎不是一個好選擇。最有效的保存自定義設置的方法
0
A
回答
0
我強烈建議創建一個類的對象並將序列化用於.NET應用程序的XML。它很容易實現,完全支持,您可以將設置從一臺計算機導入和導出到另一臺計算機。您甚至可以設置您的應用程序以準備來自網絡的設置。此外,它將使未來的編程/升級更容易。
我在這裏列出一個工作示例(測試)。該代碼自2012年起開始使用,並且適用於企業級應用程序。
注意:我只爲演示添加了一個「設置項目」,以便您自行添加。
第一:設置或選項類:
Imports System.Xml.Serialization
Imports System.IO
<Serializable()> _
Public Class Options
Public KEYS_USE_LISTS As Boolean
Public Sub New()
KEYS_USE_LISTS = True
End Sub
#Region "Methods"
Public Sub Save(ByVal Path As String)
Try
Dim _XMLSerilizer As New XmlSerializer(GetType(Options))
Dim _StreamWriter As New StreamWriter(Path)
_XMLSerilizer.Serialize(_StreamWriter, Me)
_StreamWriter.Close()
Catch ex As Exception
MsgBox("Error saving database setting." & vbCrLf & "Internal Error: " & ex.Message)
End Try
End Sub
Public Function DoLoad(ByVal Path As String) As Options
Dim _Opt As New Options
Try
If IO.File.Exists(Path) Then
Dim _XMLSerilizer As New XmlSerializer(GetType(Options))
Dim _FileStream As New FileStream(Path, FileMode.Open)
_Opt = DirectCast(_XMLSerilizer.Deserialize(_FileStream), Options)
_FileStream.Close()
End If
Catch ex As Exception
MsgBox("Error loading database setting." & vbCrLf & "Internal Error: " & ex.Message)
End Try
Return _Opt
End Function
#End Region
End Class
二:使用它通過接口(的WinForms例如)
Public Class frmOptions
Public _options As New Options
Private Sub frmOptions_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If IO.File.Exists(Application.StartupPath & "/_Options.opt") Then
_options = _options.DoLoad(Application.StartupPath & "/_Options.opt")
End If
chkUseList.Checked = _options.KEYS_USE_LISTS
End Sub
Private Sub btnOk_Click(sender As Object, e As EventArgs) Handles btnOk.Click
If IO.File.Exists(Application.StartupPath & "/_Options.opt") Then
_options = _options.DoLoad(Application.StartupPath & "/_Options.opt")
End If
_options.KEYS_USE_LISTS = chkUseList.Checked
_options.Save(Application.StartupPath & "/_Options.opt")
Me.DialogResult = Windows.Forms.DialogResult.OK
Me.Close()
End Sub
End Class
+2
你爲什麼在變量名前加上下劃線?這違背了VB.NET的命名約定(特別是'Public'!)。此外,而不是'Dim _StreamWriter ...'和'Dim _FileStream ...'把它們放在[**'使用'塊**](https://docs.microsoft.com/en-us/dotnet/visual - 基本/語言參考/語句/使用語句)。 –
+0
有效評論,Thanx! –
相關問題
- 1. wp_customize-自定義設置不保存
- 2. 將自定義表單字段保存到數據庫的有效方法
- 3. Django自定義保存方法
- 4. 最有效的方法來保存方式點和做比較?
- 5. ViewState自定義保存方法 - 有可能嗎?在JSF的ViewState
- 6. 保存設置的最佳做法?
- 7. 擴展Spring的配置保存自定義XML設置
- 8. OpenCart 2.3.0.2無法保存自定義模塊設置
- 9. 無法保存自定義收集用戶設置
- 10. 以最有效的內存方式循環訪問自定義對象的NSMutableArray
- 11. Rails - 保存多個參數的最有效方法?
- 12. 最有效的方法來保存RGB顏色
- 13. 保存等距遊戲數據的最有效方法
- 14. 在自定義語法中修改變量的最有效方法?
- 15. C:最有效的方法來設置內的變量
- 16. 爲iPhone應用程序存儲設置的最有效的替代方法
- 17. Ext JS的自定義緩存設置
- 18. 存儲自定義類型的設置
- 19. 自定義設計方法
- 20. 有沒有在EDM設計師2010中設置自定義複數的方法?
- 21. 在VB.net中保存設置的最簡單方法是什麼
- 22. 這是自定義過濾器最有效的方式嗎?
- 23. 保存每個包含自定義對象數組的自定義對象數組,最好的方法?
- 24. Visual C#自定義類的類型設置不會保存
- 25. 將自定義對象的ArrayList保存爲用戶設置
- 26. 保存自定義設置或Word文檔中的屬性
- 27. Django的inlineformset - 自定義的保存方法
- 28. Django的自定義的保存方法和更新
- 29. 將自定義類型保存到移動設備上的文件的方法?
- 30. 無法保存變量中保存的數據 - 沒有方法「設置」
*設置文件不會出現是一個好在這種情況下選項*爲什麼? – Plutonix
不知道將要保存的內容的全部範圍是什麼,它們在本地系統上,而不在網絡上。 – Terabithia
我不知道第一部分是什麼意思。目前還沒有明確的問題需要解決,但是...... a)INI文件至少從2003年開始已經過時。 b)對*用戶*設置使用* system *註冊表一直是一個糟糕的主意。 c)現在可以將設置長時間設置爲本地或漫遊d)您也可以使用自定義設置提供程序,以便仍然可以使用IDE UI,但可以隨意使用它。作爲最後的手段,像你接受的答案 – Plutonix