私のVS2013 VBアプリケーションは現在、レジストリに設定を保存しており、これは私にとって気になるところまで成長しています。だから私はファイルに設定(文字列)を保存したい。ボーナスは、ネットワークに接続して複数のユーザーが使用できることです。何百、何千もの線があるかもしれません。使用するのに適した形式は何ですか?古いINI、CSV、XML?私が見る限り、設定ファイルはこの場合には良い選択肢ではないようです。カスタム設定を保存する最も効率的な方法
答えて
クラスのオブジェクトを作成し、XML for .NETアプリケーションにシリアル化を使用することを強くお勧めします。実装が容易で、完全にサポートされており、あるコンピュータから別のコンピュータに設定をインポートおよびエクスポートできます。ネットワークからの設定を準備するようにアプリケーションを設定することもできます。さらに、将来のプログラミング/アップグレードを容易にします。
ここでは、実例(テスト済み)をリストしています。このコードは2012年以降に使用されており、エンタープライズレベルのアプリケーションには完全に対応しています。
注:自分自身を追加するために、デモ用の「設定項目」を1つだけ含めました。
まず:設定またはオプションクラス:
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
第二:インタフェース(例えばリサイズ)
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
なぜ変数名の先頭にアンダースコアがありますか?これはVB.NETの命名規則(特に 'Public'の命名規則)に反するものです。また、「Dim _StreamWriter ...」と「Dim _FileStream ...」の代わりに、[** 'Using'ブロック**](https://docs.microsoft.com/en-us/dotnet/visual)に入れてください。 -basic/language-reference/statements/using-statement)を参照してください。 –
有効なコメント、Thanx! –
- 1. iPhoneアプリの設定を保存する最も効率的な代替方法
- 2. mongodb gpsトラッキングデータを保存する最も効率的な方法
- 3. 最も効率的なページヒットを生成する最も効率的な方法
- 4. ユーザエージェント、紹介などを保存する最も効率的な方法は
- 5. アナリティクスビーコンを保存する最も効率的な方法は何ですか?
- 6. このベクターを保存する最も効率的な方法は?
- 7. iPhoneでディスクに写真を保存する最も効率的な方法は?
- 8. 財務データを保存する最も効率的な方法(Python)
- 9. アンドロイド開発でテキストとメディアを保存する最も効率的な方法
- 10. ショッピングバッグのデータをmysql dbに保存する最も効率的な方法
- 11. このデータを保存してトラバースする最も効率的な方法は?
- 12. Amazon DynamoDBにIPアドレスを保存する最も効率的な方法は?
- 13. 大量のデータをデータベースに保存する最も効率的な方法
- 14. URLをMySQLに保存する最も効率的な方法は?
- 15. Java/Android - 多くの変数を保存する最も効率的な方法
- 16. データを保存して取り出す最も効率的な方法
- 17. 最も効率的な方法
- 18. 最も効率的な方法
- 19. 最も効率的な方法と
- 20. 最も効率的な方法
- 21. 最も効率的な方法
- 22. 最も効率的な方法のハンドラ
- 23. テキストファイルに基づいてチェックボックスを設定する最も効率的な方法
- 24. VimのDjango設定ファイルを編集する最も効率的な方法
- 25. ベストプラクティスと、モカテストのデータベース接続を設定する最も効率的な方法
- 26. 一時的なユーザーデータを効率的に保存する方法
- 27. 最も効率的なマルチレベルコメントシステム
- 28. 最も効率的なバブルソートメカニズム
- 29. テキストボックスで数値のカンマを保持する最も効率的な方法は?
- 30. アニメーションツールのためのデータ保存を最も効率的に/最も速く処理する方法
を通してそれを使用してください*設定ファイルは良いように表示されません。この場合のオプション*なぜですか? – Plutonix
何が保存されるのかが分からず、彼らはネットワークではなくローカルシステムにあります。 – Terabithia
最初の部分が何を意味するのか分かりません。解決すべき問題についての明確な説明はありませんが、a)INIファイルは少なくとも2003年以来時代遅れです。 b)* user *設定に* system *レジストリを使用することは、長い間、悪い考えでした。 c)設定は、ローカルまたはローミングに長時間設定することができます。d)カスタム設定プロバイダを使用して、IDE UIを使用することもできますが、必要な操作を行うことができます。最後の手段としてあなたが受け入れた答えのようなものがあります – Plutonix