SerializationException:在将System._COM对象转换为byte []期间未标记为可序列化

时间:2014-09-03 11:14:57

标签: c# asp.net serialization

我正在开发一个使用ASP.NET 4在Visual Studio 2010中开发的网站。 我试图以编程方式从word文档中提取图像。我正在使用的方法是:

  1. 将WordApp.InlineShapes [1](System._COM对象)转换为字节[]
  2. 将byte []转换为System.Drawing.Image对象
  3. 保存图片
  4. 但我在第1步中遇到异常:

    Type 'System.__ComObject' in Assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.
    

    我用谷歌搜索了两天但无法理解问题和解决方法,因为我对ASP.NET中的开发很陌生

    我正在执行的这行是:

    byte[] shapeByteArray = ObjectToByteArray(wrdDoc.InlineShapes[1]);
    

    方法ObjectToByteArray如下:

        private byte[] ObjectToByteArray(Object obj)
        {
            if (obj == null)
                return null;
            BinaryFormatter bf = new BinaryFormatter();
    
            MemoryStream ms = new MemoryStream();
            bf.Serialize(ms, obj);
            return ms.ToArray();
        }
    

    以下行抛出SerializationException:

    return ms.ToArray();
    

    你能帮我理解并解决这个问题吗?

0 个答案:

没有答案