请教各位:在智能设备 Windows CE下,创建组件MapControl,里面有一属性为
  List<PointF> _currentPoints = new List<PointF>();
  /// <summary>
  /// 获取或设置当前未记录的点集合
  /// </summary>   
  public List<PointF> CurrentPoints
  {
  get { return _currentPoints;}
  set { _currentPoints = value; }
  }
PointF是自定义的一个结构:
  /// <summary>
  /// 点结构
  /// </summary>   
  public struct PointF
  {
  public float X;
  public float Y;
  }出现一下错误:
  属性“CurrentPoints”的代码生成失败。错误是:“程序集“MapControl,Version 1.0.0.0, Culture = neutral, PublicKeyToken = null ”中的类型“MapControl.PointF”未标记为可序列化。”在PointF结构前加上 [Serializable]后,出现错误:  
  类型“MapControl.PointF[]”的对象无法转换为类型“MapControl.PointF[]”。   
    
此错误的实例(1)   
 
1。 显示调用堆栈   
 
在 System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo culture, BindingFlags invokeAttr)
在 System.Reflection.RtFieldInfo.InternalSetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture, Boolean doVisibilityCheck, Boolean doCheckConsistency)
在 System.Runtime.Serialization.FormatterServices.SerializationSetValue(MemberInfo fi, Object target, Object value)
在 System.Runtime.Serialization.ObjectManager.CompleteObject(ObjectHolder holder, Boolean bObjectFullyComplete)
在 System.Runtime.Serialization.ObjectManager.DoNewlyRegisteredObjectFixups(ObjectHolder holder)
在 System.Runtime.Serialization.ObjectManager.RegisterObject(Object obj, Int64 objectID, SerializationInfo info, Int64 idOfContainingObj, MemberInfo member, Int32[] arrayIndex)
在 System.Runtime.Serialization.Formatters.Binary.ObjectReader.RegisterObject(Object obj, ParseRecord pr, ParseRecord objectPr, Boolean bIsString)
在 System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObjectEnd(ParseRecord pr)
在 System.Runtime.Serialization.Formatters.Binary.ObjectReader.Parse(ParseRecord pr)
在 System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
在 System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
在 System.Resources.ResXDataNode.GenerateObjectFromDataNodeInfo(DataNodeInfo dataNodeInfo, ITypeResolutionService typeResolver)
在 System.Resources.ResXDataNode.GetValue(ITypeResolutionService typeResolver)
在 System.Resources.ResXResourceReader.ParseDataNode(XmlTextReader reader, Boolean isMetaData)
在 System.Resources.ResXResourceReader.ParseXml(XmlTextReader reader)   
 
 
警告 1 无法分析 ResX 文件类型“MapControl.PointF[]”的对象无法转换为类型“MapControl.PointF[]”。 行 148,位置 5。。 148 0 多多指点!

解决方案 »

  1.   

    你是不是在两个地方实现了MapControl 或者没有更新引用
      

  2.   

    只有一个命名空间MapCOntrol,而且重新引用了,还是不行,
      

  3.   

     [Bindable(false), Browsable(false)]
     [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
      public List<PointF> CurrentPoints
      {
      get { return _currentPoints;}
      set { _currentPoints = value; }
      }
    http://blog.csdn.net/wxm3630478/archive/2009/06/24/4295122.aspx
      

  4.   

    可能是结构不可以进行序列化,换成类就行了。
    [Serializable]
    public class PointF
      {
      public float X;
      public float Y;
      }
      

  5.   

    谢谢您,将上面的内容改成如下形式我就解决了这个问题,
            [Bindable(false), Browsable(true)]
            [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]虽然您不是专门回答我的,真的谢谢您的提示