[属性" * "的代码生成失败.错误是:"程序集"*.Version=1.0.0.0,Culture=neutral,.........

智能设备 Windows CE下,自定义控件中有一属性为

List Points = new List();

        /// 
        /// 获取或设置当前未记录的点集合
        ///         
        public List CurrentPoints
        {
            get { return Points;}
            set { Points = value; }
        }
T是自定义的一个结构:
  /// 
    /// 点结构
    ///     
    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集合类型作为属性造成的原因,我最后的解决办法是:不将List集合作为一个属性提供出去而是通过方法:
Public T[] GetCurrentPoints
{
Return Points.ToArray();
}
Public void SetCurrentPoints(T[] t)
{
	Points.AddRange(t);
}
为了稳定起见,参数的传递也改成了基本的数组类型。

你可能感兴趣的:(编程)