具有自定义TypeConverter的属性未序列化到designdesigner .cs
本文关键字:序列化 designdesigner cs 属性 自定义 TypeConverter | 更新日期: 2023-09-27 18:16:10
我有一个类定义了两个值long:
[Serializable, TypeConverterAttribute(typeof(RangeConverter))]
public class Range : ICloneable, IEquatable<Range>, IEqualityComparer<Range>
{
long min;
long max;
public long Min
{
get { return min; }
set { min = value; }
}
//[etc....]
}
RangeConverter
是完全相同的。net SizeConverter,除了小的变化,因为从int
到long
的变化。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
// I tried also this:
//[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public Range SelectedRange
{
get { return range; }
set { range = value;}
}
此属性永远不会序列化到designer.cs。我是不是漏掉了什么特别的东西?有时我从VisualStudio得到一个错误,说Rage没有转换为InstanceDescriptor。这个问题能解释缺乏序列化的原因吗?
好了,我找到原因了。我的Range类有其他字段,其中一个是不可序列化的,但是仍然没有以这种方式标记。通过将属性[NonSerialized]
添加到该字段,Range类被正确地序列化到designer.cs