...我要补充一点,我是用C#相对小白,所以请简单来说:)C#序列化问题
无论如何解释,我有这个类(截断清晰度):
[Serializable]
public class Player : Ship {
和船舶看起来像这样(再次截断):
[Serializable]
public class Ship : TiledActor {
public float MaxUserTurnPerSecond;
public float RemainingShieldStrength;
public float MaxShieldStrength;
public float ShieldRechargeRate;
public float ShieldRechargeDelay;
public Color ShieldColor;
public float ThrusterAccelerationScale;
public Color RippleTrailColor;
public float MinimumRippleSpeed;
public float MaxEnergy;
public float CurrentEnergy;
public float EnergyRechargeRate;
public float MaxSecondaryAmmoCapacity;
public int CurrentSecondaryAmmoCount;
public Weapon PrimaryWeapon;
public Weapon SecondaryWeapon;
protected ShieldActor ShieldTex;
[NonSerialized]
public MoXNA.ParticleMachines.PM_Explosion_Particle_Count ExplosionSize;
[NonSerialized]
protected MoXNA.ParticleMachines.MinSpeedRippleTrail rippleTrail;
/* ... Truncated here */
所以,你可以看到,我想序列化的播放器类。然而,当我试试这个,我得到这个错误:
An unhandled exception of type 'System.Runtime.Serialization.SerializationException' occurred in mscorlib.dll
Additional information: Type 'MoXNA.ParticleMachines.MinSpeedRippleTrail' in Assembly 'SpaceshipInABox, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.
这里奇怪的是,我打上rippleTrail(这是MinSpeedRippleTrail对象)为[非序列化] ...我不想要序列化它(这只是一个视觉效果)。
我使用了“查找所有引用”,并且这是唯一的MinSpeedRippleTrail对象在整个程序中,那该死什么?
谢谢。
你可以显示代码引发此错误的位置吗?你试图写哪些数据,哪些不是。 – Spidy 2011-02-25 18:11:19
类型:Color,Weapon,ShieldActor是否可串行化? – Maciek 2011-02-25 18:13:26
我不明白为什么这不起作用,但您可以尝试以下方法。尝试向'MinSpeedRippleTrail'类/结构中添加'Serializable',或许尽管应用了NonSerialized属性,它仍然首先检查它是否可以被序列化? – 2011-02-25 18:14:14