public void GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("ValueType",(byte)ValueType); switch (ValueType) { case VariantType.Null: case VariantType.Undefined: break; default: info.AddValue("Value",Value); break; } }