これがサンプルコードです...しかし、私はserializationExceptionを取得しています。
xlbookはオブジェクトであり、このオブジェクトをメモリストリームに保存したいと思います。
unsafe public void Save(IStream stream, bool clearDirty, Excel.Workbook xlbook)
{
try
{
//if (stream == null)
//{
// return;
//}
//object data = xlbook;
if (xlbook == null)
{
return;
}
// convert data to byteArray
MemoryStream memoryStream = new MemoryStream();
BinaryFormatter binaryFormatter = new BinaryFormatter();
//AppDomain currentDomain = AppDomain.CurrentDomain;
//currentDomain.AssemblyResolve += new ResolveEventHandler(currentDomain_AssemblyResolve);
//here im getting exception.
binaryFormatter.Serialize(memoryStream, xlbook);
byte[] bytes = memoryStream.ToArray();
memoryStream.Close();
//get memory pointer
int cb;
int* pcb = &cb;
//save data
byte[] arrayLen = BitConverter.GetBytes(bytes.Length);
stream.Write(arrayLen, arrayLen.Length, new IntPtr(pcb));
stream.Write(bytes, bytes.Length, new IntPtr(pcb));
//currentDomain.AssemblyResolve -= new ResolveEventHandler(currentDomain_AssemblyResolve);
}
catch
{
}
}
私が得ている例外は...
アセンブリ'Microsoft.Office.Interop.Excel、Version = 11.0.0.0、Culture = neutral、PublicKeyToken =71e9bce111e9429c'に'Microsoft.Office.Interop.Excel.WorkbookClass'と入力すると、シリアル化可能としてマークされません。