VB2012:My.Settingsクラスのクローン(コピーではない)を作成しようとしています。私はSOMySettingsのクローンを作成する
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
にここで見つけるDeepClone機能を試してみましたが、それは国会 「TestAppが、バージョン= 10.1で例外で
タイプ 'MyCompany.MyDept.TestApp.My.MySettings' を結果。 0.3、Culture =ニュートラル、PublicKeyToken = null 'は はシリアル化可能とマークされていません。
設定がクラスであり、XMLとして保存されている場合は、それらをクローンする方法が必要ですか、間違ったツリーを吠えているだけですか?
〜AGP
をあなたがそれをクローニングしている方法は、それがすべてをシリアル化できるように、 'Serializable'属性を必要とバイナリシリアル経由で非公開フィールド。 XMLのシリアル化は、その属性を必要としないパブリックフィールドのみをシリアル化します。 –
浅いクローンでは十分ではありませんか? – miroxlav
私はそれに続くサンプルがあります。私は何かを試してみる。 – sinDizzy