Tag: binary serialization

在ILMerge之后,BinaryFormatter.Deserialize“无法找到程序集”

我有一个带有引用的dll的C#解决方案(也是具有相同.Net版本的C#)。 当我构建解决方案并运行生成的exe时,没有合并exe和引用的dll,一切正常。 现在我想将这些合并到一个exe中。 我运行ILMerge,一切似乎都正常。 我尝试执行exe,它似乎运行正常,直到它尝试反序列化引用的DLL中定义的对象。 using (Stream fstream = new FileStream(file_path, FileMode.Open)) { BinaryFormatter bf = new BinaryFormatter(); return bf.Deserialize(fstream) as ControlledRuleCollection; // throws unable to find assembly exception } 可能有一些ILMerge选项我在这里丢失了吗?

序列化问题:System.UnauthorizedAccessException

我收到此错误:mscorlib.dll中出现未处理的“System.UnauthorizedAccessException”类型exception 附加信息:访问路径’C:\ Users \ Storm Kiernan \ Desktop(NEW)Archetype Development Kit \ Laboratory \ Laboratory \ bin \ x86 \ Debug \ lol.dataf’被拒绝。 从尝试通过此代码序列化任何对象: public static void BinarySerialize(this T t, string path) { DirectoryInfo directoryInfo = new DirectoryInfo(path); directoryInfo.EnsureDirectory(); using (FileStream stream = new FileStream(directoryInfo.FullName, FileMode.OpenOrCreate)) { BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, t); } } […]

将byte 数组转换为DataTable

我在类型为varbinary的字段中将DataTable类型的对象保存到SQL 2005数据库中。 我想要找回它,但我无法输入它。 这就是我拯救它的方式。 MemoryStream memStream = new MemoryStream(); StreamWriter sw = new StreamWriter(memStream); sw.Write(dt); con.Open(); using (SqlCommand cmd = new SqlCommand(“INSERT INTO Tables(TableName, TableData, QuestionID) VALUES (@TableName, @TableData, @QuestionID)”, con)) { cmd.Parameters.Add(“@TableName”, SqlDbType.VarChar).Value = “a new table”; cmd.Parameters.Add(“@TableData”, SqlDbType.VarBinary,Int32.MaxValue).Value = memStream.GetBuffer(); cmd.Parameters.Add(“@QuestionID”, SqlDbType.VarChar).Value = “2”; cmd.ExecuteNonQuery(); } ‘dt’是DataTable对象实例。