Run*_*CMD 5 .net c# visual-studio
我在VS2008中遇到以下设计器错误:
Object of type 'Data.TimeLineChartedDay[]' cannot be
converted to type 'Data.TimeLineChartedDay[]'.
Run Code Online (Sandbox Code Playgroud)
???
public class TimeLineDisplay
{
private List<TimeLineChartedDay> chartedDays = new List<TimeLineChartedDay>();
public List<TimeLineChartedDay> ChartedDays
{
get { return chartedDays; }
set { chartedDays = value; }
}
}
[Serializable]
public class TimeLineChartedDay
{
private DateTime date;
private int chartValue;
public DateTime Date
{
get { return date; }
set { date = value; }
}
public int ChartValue
{
get { return chartValue; }
set { chartValue = value; }
}
public TimeLineChartedDay()
{
}
}
Run Code Online (Sandbox Code Playgroud)
VS堆栈:
at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo culture, BindingFlags invokeAttr)
at System.Reflection.RtFieldInfo.InternalSetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture, Boolean doVisibilityCheck, Boolean doCheckConsistency)
at System.Reflection.RtFieldInfo.InternalSetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture, Boolean doVisibilityCheck)
at System.Runtime.Serialization.FormatterServices.SerializationSetValue(MemberInfo fi, Object target, Object value)
at System.Runtime.Serialization.ObjectManager.CompleteObject(ObjectHolder holder, Boolean bObjectFullyComplete)
at System.Runtime.Serialization.ObjectManager.DoNewlyRegisteredObjectFixups(ObjectHolder holder)
at System.Runtime.Serialization.ObjectManager.RegisterObject(Object obj, Int64 objectID, SerializationInfo info, Int64 idOfContainingObj, MemberInfo member, Int32[] arrayIndex)
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.RegisterObject(Object obj, ParseRecord pr, ParseRecord objectPr, Boolean bIsString)
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObjectEnd(ParseRecord pr)
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Parse(ParseRecord pr)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
at System.Resources.ResXDataNode.GenerateObjectFromDataNodeInfo(DataNodeInfo dataNodeInfo, ITypeResolutionService typeResolver)
at System.Resources.ResXDataNode.GetValue(ITypeResolutionService typeResolver)
at System.Resources.ResXResourceReader.ParseDataNode(XmlTextReader reader, Boolean isMetaData)
at System.Resources.ResXResourceReader.ParseXml(XmlTextReader reader)
Run Code Online (Sandbox Code Playgroud)
在此错误之前发生了以下情况:我添加了一个自编写的控件.VS崩溃时出现以下消息:"Class TimeLineChartedDay未标记为可序列化".我发现这很奇怪,因为它写在另一台机器上,并没有抱怨'Serializable'属性.我将该属性添加到了类中,并偶然发现了前面提到的错误.
SLa*_*aks 10
您的控件正在尝试序列化类实例,但可能不应该.
您应该添加[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]到公开的属性TimeLineDisplay.
有关更具体的建议,请告诉我们您的控制权.
| 归档时间: |
|
| 查看次数: |
3171 次 |
| 最近记录: |