我一直在使用这段代码来尝试修改一些可以写入文件的数据,但无论我做什么,即使直接指定空字节,它也不会改变。我试图从单独的类访问字典条目而不是它生成的类。
Buffer.BlockCopy(
pio.GetBuffer(),
0,
Wat.SettingEntryList[0x63E83FFF].Data,
0,
Wat.SettingEntryList[0x63E83FFF].Data.Length);
Buffer.BlockCopy(
pio.GetBuffer(),
Wat.SettingEntryList[0x63E83FFF].Data.Length,
Wat.SettingEntryList[0x63E83FFE].Data,
0,
Wat.SettingEntryList[0x63E83FFE].Data.Length);
这是类中的变量,以及我如何初始化字典:
public class SettingEntry
{
public byte[] Data { get; set; }
}
public Dictionary SettingEntryList = new Dictionary();
将数据写入文件时,我会像这样检查每个键:
foreach (KeyValuePair<int, SettingEntry> SE in SettingEntryList)
{
pio.WriteBytes(SE.Value.Data);
}
我经历过调试。一旦我确定密钥存在并且全部,我使用了这个代码,当我运行时,应用程序保持循环直到我退出:
while (GPD.SettingEntryList[0x63E83FFF].Data != new byte[GPD.SettingEntryList[0x63E83FFF].Data.Length])
GPD.SettingEntryList[0x63E83FFF].Data = new byte[GPD.SettingEntryList[0x63E83FFF].Data.Length];
答案 0 :(得分:0)
字典不是只读的。
您正在将字节写入字典而不是字典中的值内的Data属性。
如果你真的想要覆盖字典条目,请使用 -
foreach (KeyValuePair<int, SettingEntry> entry in SettingEntryList)
{
var val = new SettingsEntry() { Data = new DataType() };
pio.WriteBytes(val.Data);
entry.Value = val;
}