با سلام.

من در ساخت ایجاد Collection برای اشیاء سفارشی دانش کافی ندارم و زمانی که در دیزاین مقادیر خصوصیت تغییر می کنه ثبت می شه اما زمانی که قراره اون مقادیر دوباره استفاده بشه دیزاینر خطا بر می گردونه:

خصوصیتی که برای شیء سفارشی ساختم اینه:


Private VariablesValue As New List(Of VariableItem)
<DesignerSerializationVisibility(DesignerSerializa tionVisibility.Visible)> _
Public Property Variables() As List(Of VariableItem)
Get
Return VariablesValue
End Get
Set(value As List(Of VariableItem))
VariablesValue = value
End Set
End Property



کلاس آیتم های لیست هم این هست:

Imports System.ComponentModel
<Serializable()> _
Public Class VariableItem
Sub New()
MyBase.New()
Me.NameValue = MyBase.MemberwiseClone.Name
End Sub
Sub New(Item As VariableItem)
MyBase.New()
If String.IsNullOrEmpty(Item.Name) Then
Me.NameValue = MyBase.MemberwiseClone.Name
Else
Me.NameValue = Item.Name
End If
Me.ValueValue = Item.Value
End Sub
Sub New(Name As String, Value As String)
MyBase.New()
If String.IsNullOrEmpty(Name) Then
Me.NameValue = MyBase.MemberwiseClone.Name
Else
Me.NameValue = Name
End If
Me.NameValue = Name
Me.ValueValue = Value
End Sub
Private NameValue As String
<DesignerSerializationVisibility(DesignerSerializa tionVisibility.Visible)> _
<ParenthesizePropertyName(True)> _
Public Property Name() As String
Get
Return NameValue
End Get
Set(ByVal value As String)
NameValue = value
End Set
End Property
Private ValueValue As String
<DesignerSerializationVisibility(DesignerSerializa tionVisibility.Visible)> _
Public Property Value() As String
Get
Return ValueValue
End Get
Set(ByVal value As String)
ValueValue = value
End Set
End Property


End Class


و اما خطا:

Annotation 2024-04-07 202500.png


Instances of this error (1)
1.
at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast)
at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo culture, BindingFlags invokeAttr)
at System.Reflection.RtFieldInfo.UnsafeSetValue(Objec t obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture)
at System.Runtime.Serialization.FormatterServices.Ser ializationSetValue(MemberInfo fi, Object target, Object value)
at System.Runtime.Serialization.ObjectManager.Complet eObject(ObjectHolder holder, Boolean bObjectFullyComplete)
at System.Runtime.Serialization.ObjectManager.DoNewly RegisteredObjectFixups(ObjectHolder holder)
at System.Runtime.Serialization.ObjectManager.Registe rObject(Object obj, Int64 objectID, SerializationInfo info, Int64 idOfContainingObj, MemberInfo member, Int32[] arrayIndex)
at System.Runtime.Serialization.Formatters.Binary.Obj ectReader.RegisterObject(Object obj, ParseRecord pr, ParseRecord objectPr, Boolean bIsString)
at System.Runtime.Serialization.Formatters.Binary.Obj ectReader.ParseObjectEnd(ParseRecord pr)
at System.Runtime.Serialization.Formatters.Binary.Obj ectReader.Parse(ParseRecord pr)
at System.Runtime.Serialization.Formatters.Binary.__B inaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.Obj ectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.Bin aryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.Bin aryFormatter.Deserialize(Stream serializationStream)
at System.Resources.ResXDataNode.GenerateObjectFromDa taNodeInfo(DataNodeInfo dataNodeInfo, ITypeResolutionService typeResolver)
at System.Resources.ResXDataNode.GetValue(ITypeResolu tionService typeResolver)
at System.Resources.ResXResourceReader.ParseDataNode( XmlTextReader reader, Boolean isMetaData)
at System.Resources.ResXResourceReader.ParseXml(XmlTe xtReader reader)


منتظر راهنمایی های سبزتان هستیم ...
با تشکر.