智能设备 Windows CE下,自定义控件中有一属性为
List<T> Points = new List<T>();
/// <summary>
/// 获取或设置当前未记录的点集合
/// </summary>
public List<T> CurrentPoints
{
get { return Points;}
set { Points = value; }
}
T是自定义的一个结构:
/// <summary>
/// 点结构
/// </summary>
public struct T
{
public float X;
public float Y;
}
有时会出现以下错误:
属性“CurrentPoints”的代码生成失败。错误是:“程序集“myControl,Version 1.0.0.0, Culture = neutral, PublicKeyToken = null ”中的类型“MapControl.PointF”未标记为可序列化。”
http://blog.csdn.net/wxm3630478/article/details/4295122上提供了几种解决方法,但是没有解决我的问题,大家可以尝试下。
我认为出现上述问题原因是List<T>集合类型作为属性造成的原因,我最后的解决办法是:不将List<T>集合作为一个属性提供出去而是通过方法:
Public T[] GetCurrentPoints
{
Return Points.ToArray();
}
Public void SetCurrentPoints(T[] t)
{
Points.AddRange(t);
}
为了稳定起见,参数的传递也改成了基本的数组类型。