请教各位:在智能设备 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 多多指点!
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 多多指点!
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public List<PointF> CurrentPoints
{
get { return _currentPoints;}
set { _currentPoints = value; }
}
http://blog.csdn.net/wxm3630478/archive/2009/06/24/4295122.aspx
[Serializable]
public class PointF
{
public float X;
public float Y;
}
[Bindable(false), Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]虽然您不是专门回答我的,真的谢谢您的提示