プロパティのデフォルト値を設定する必要がありますが、次のように設定することはできません。
private int prop = 1;
public Prop
{
get { return prop;} ...
}
このクラスをシリアル化する必要があるため、シリアル化すると、デフォルト値が失われます。
シリアル化の後で、プロパティに属性を追加する前に機能するソリューションを知っていますか?
フレームワーク3.5でc#を使用しています。
プロパティのデフォルト値を設定する必要がありますが、次のように設定することはできません。
private int prop = 1;
public Prop
{
get { return prop;} ...
}
このクラスをシリアル化する必要があるため、シリアル化すると、デフォルト値が失われます。
シリアル化の後で、プロパティに属性を追加する前に機能するソリューションを知っていますか?
フレームワーク3.5でc#を使用しています。
[DefaultValue("SomeValue")]
public string Prop { get; set; }
ここでシリアライゼーションについて多くのことを読むことができます: http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx
もあります:
''' <summary>
''' The defaults size for the list item.
''' </summary>
''' <value>Size.</value>
''' <returns>Size.</returns>
''' <remarks></remarks>
<Category("Appearance")> _
<Description("The defaults size for the list item.")> _
Public Property DefaultItemSize() As Size Implements IVisualList.DefaultItemSize
Get
Return m_DefaultItemSize
End Get
Set(ByVal value As Size)
m_DefaultItemSize = value
End Set
End Property
Protected Overridable Function ShouldSerializeDefaultItemSize() As Boolean
If m_DefaultItemSize.Equals(New Size(100, m_CellHeight)) Then Return False
Return True
End Function
また
別のオプションとして、次の属性を使用することもできます。
[OnSerializing()]
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.onserializingattribute.aspx
[OnDeserializing()]
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.ondeserializingattribute.aspx