admin管理员组

文章数量:1644030

智能设备 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/wxm3630478/article/details/4295122上提供了几种解决方法,但是没有解决我的问题,大家可以尝试下。

我认为出现上述问题原因是List<T>集合类型作为属性造成的原因,我最后的解决办法是:不将List<T>集合作为一个属性提供出去而是通过方法:
Public T[] GetCurrentPoints
{
Return Points.ToArray();
}
Public void SetCurrentPoints(T[] t)
{
	Points.AddRange(t);
}
为了稳定起见,参数的传递也改成了基本的数组类型。

本文标签: 属性错误代码程序culture