没法将类型为“Common.Pack”的对象强 发布时间: 2013-11-03 15:39:14 作者: rapoo
无法将类型为“Common.Pack”的对象强制转换为类型“Common.Pack”。”(System.InvalidCastException) 本帖最后由 xx0xx0404 于 2013-10-30 17:13:36 编辑
[Serializable] public class Pack { public byte PackCommand = 0; public int Version = 0; public Pack(Command com, int ver) { PackCommand = (byte)com; //此处(byte)com的结果为 116 , com = VerifyVersion Version = ver; } public Object PackObj = null; } public enum Command : byte { VerifyVersion = 0x74, }以上代码输出 EXE文件就可以正常 输出 DLL 就提示以下错误。
异常:已引发:“无法将类型为“Common.Pack”的对象强制转换为类型“Common.Pack”。”(System.InvalidCastException)
引发了一个 System.InvalidCastException:“无法将类型为“Common.Pack”的对象强制转换为类型“Common.Pack”。”
Time: 2013-10-30 17:06:09
线程:<无名称>[10336]
类型
[解决办法] 基本是这样运作的
引用 Pack pack = PacketHelpers.GetBodyBytes(e.Astream); if (pack != null) { switch ((Command)pack.PackCommand) { case Command.VerifyVersion: {此处代码没写} break; default: break; } } public static Pack GetBodyBytes(byte[] data) { {此处代码没写} return (Pack)Cryption.Deserialize(Packs); //错误提示在这里 异常:已引发:“无法将类型为“Common.Pack”的对象强制转换为类型“Common.Pack”。”(System.InvalidCastException) 引发了一个 System.InvalidCastException:“无法将类型为“Common.Pack”的对象强制转换为类型“Common.Pack”。” } 引用 public static class Cryption { public static object Deserialize(byte[] stream) { object data = new object(); MemoryStream streamMemory = new MemoryStream(); try { BinaryFormatter formatter = new BinaryFormatter(); streamMemory = new MemoryStream(stream); data = formatter.Deserialize(streamMemory); } catch { data = null; } return data; } 引用 [Serializable] public class Pack { public byte PackCommand = 0; public int Version = 0; public Pack(Command com, int ver) { PackCommand = (byte)com; //此处(byte)com的结果为 116 , com = VerifyVersion Version = ver; } public Object PackObj = null; } public enum Command : byte { VerifyVersion = 0x74, }