我想在内存流中保存一个笔画用于此目的是使用BinaryFormatter但是当我尝试序列化Stroke时我得到一个错误,我无法序列化笔画
有没有办法在笔记本中保存笔画或序列化笔画?
这是我的代码的一部分
int size = inkCanvas1.Strokes.Count();
IFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
if (size != 0)
{
try
{
formatter.Serialize(stream, inkCanvas1.Strokes[size - 1]);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
没有找到解决以下问题的方法.
我有一个工作代码用于在文件中保存/加载TreeView但我想将它保存到Properties.Settings.Default.
不幸的是,我在这行中收到错误"没有对象的地图":
object obj = bf.Deserialize(ms);
Run Code Online (Sandbox Code Playgroud)
这是(反)序列化的完整代码:
不知道如何解决这个问题.:(
public static void SaveTreeView(TreeView tree)
{
using (MemoryStream ms = new MemoryStream())
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, tree.Nodes.Cast<TreeNode>().ToList());
ms.Position = 0;
var sr = new StreamReader(ms);
Properties.Settings.Default.tree = sr.ReadToEnd();
Properties.Settings.Default.Save();
}
}
public static void LoadTreeView(TreeView tree)
{
using (MemoryStream ms = new MemoryStream())
{
var sw = new StreamWriter(ms);
sw.WriteLine(Properties.Settings.Default.tree);
sw.Flush();
ms.Seek(0, SeekOrigin.Begin);
BinaryFormatter bf = new BinaryFormatter();
object obj = bf.Deserialize(ms);
TreeNode[] nodeList = (obj as IEnumerable<TreeNode>).ToArray(); …Run Code Online (Sandbox Code Playgroud) 我在2个不同的项目中有2个使用序列化的程序.程序1序列化和反序列化一个名为Quiz的类的数组.Both项目具有Quiz类.程序2仅反序列化程序1序列化的内容:
private void loadSerialize(object sender, EventArgs e)
{
BinaryFormatter formatter = new BinaryFormatter();
Stream stream = new System.IO.FileStream("DataFile.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
Quiz[] obj = (Quiz[]) formatter.Deserialize(stream);
for(int i = 0; i< obj.Length; i++)
{
quizes.Add(obj[i]);
}
stream.Close();
}
private void saveSerialize(object sender, FormClosedEventArgs e) {
Quiz[] obj = quizes.ToArray();
BinaryFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("DataFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
}
Run Code Online (Sandbox Code Playgroud)
两个程序都具有"loadSerialize"功能,而只有Program1具有"saveSerialize"功能.当我尝试在Program2中反序列化文件时,我得到一个serializationException.说(消息错误是葡萄牙语所以我把它翻译成英语):找不到程序集'infoAplicadaEnsino,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'.如何在Program2中反序列化?
我试图将检索到的注册表值转换object为byte[].它存储为REG_BINARY.我试着用BinaryFormatter用MemoryStream.但是,它增加了我不想要的开销信息.当我通过执行该函数将字节数组转换为字符串时,我观察到了这一点Convert.ToBase64String(..).我正在执行这些功能,因为我正在测试在注册表中存储和检索加密密钥.
我需要使用BinaryFormatter序列化静态类,这里是代码:
void Serialize()
{
IFormatter formatter = new BinaryFormatter();
using (FileStream s = File.Create("ServerInfo.bin"))
formatter.Serialize(s, Server); // ERROR: Error 44 'Server' is a 'type' but is used like a 'variable'
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
public static object Deserialize(string path)
{
using (Stream stream = File.Open(path, FileMode.Open))
{
BinaryFormatter bformatter = new BinaryFormatter();
return bformatter.Deserialize(stream);
}
}
SomeClass someObject = (SomeClass)Deserialize(savePath);
Run Code Online (Sandbox Code Playgroud)
我想创建一个包含自身进度的反序列化过程.所以可能某种IEnumerator每帧更新我的进度字段.是否可以在读取文件时跟踪Formatter的位置?
当我反序列化大文件时,我想知道它是怎么回事......
我正在使用二进制格式化程序来序列化我的对象。我想知道序列化字节数组中属性的顺序是什么(根据对象类中的属性顺序?是随机地?)并且是否可以根据道具控制字节的顺序。
例如,
如果我序列化以下obj:
public class Human
{
int Age {get;set;}
int Weight {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
如果要序列化,字节顺序是什么意思?(前4个字节代表年龄,下一个是权重吗?依此类推..或二进制格式化程序将其随机设置)
我有两个程序,一个是用 C 编写的,另一个是用 C# 编写的。在C#程序中,我使用BinaryFormatter().Serialize()方法序列化数据模型,然后通过TCP套接字将序列化的二进制流发送到C程序。现在在C程序中,我想提取数据,以便我想知道如何BinaryFormatter().Serialize()生成字节流的格式。我想用 C 编写一个反序列化器函数,用于重新生成BinaryFormatter().Serialize()C# 中序列化的数据。有可用的文档或信息吗?