C# 将FJCore与用于Windows Phone 7的Silverlight一起使用时发生FieldAccessException

C# 将FJCore与用于Windows Phone 7的Silverlight一起使用时发生FieldAccessException,c#,silverlight,windows-phone-7,fjcore,C#,Silverlight,Windows Phone 7,Fjcore,我发现了Silverlight的这个很棒的库,它基本上是libjpeg的一个端口,所以我非常兴奋地去查看它。从SVN repo下载库后(http://fjcore.googlecode.com/svn/trunk/),我能够成功地构建库,并将对.DLL的引用添加到我的Windows Phone 7项目中。在成功构建我的WP7项目后,当使用emulator时,应用程序崩溃,出现了一个我以前从未见过的错误: FieldAccessException未处理。-System.Reflection.Emi

我发现了Silverlight的这个很棒的库,它基本上是libjpeg的一个端口,所以我非常兴奋地去查看它。从SVN repo下载库后(http://fjcore.googlecode.com/svn/trunk/),我能够成功地构建库,并将对.DLL的引用添加到我的Windows Phone 7项目中。在成功构建我的WP7项目后,当使用emulator时,应用程序崩溃,出现了一个我以前从未见过的错误:

FieldAccessException未处理。-System.Reflection.Emit.OpCodes.Ldarg_1

来自原始代码的silverlight示例运行良好。该示例打开一个“打开文件”对话框,并根据所选内容调整图像大小。不幸的是,我不能在我的WP7项目中使用相同的代码。WP7类不支持“打开文件”对话框。该库只使用一个通用流对象,因此我将从PhotoChooserTask Completed事件中传入e.Result(一个PhotoStream对象)

关于我为什么会出现这个错误以及如何修复它,有什么想法吗

在我的WP7应用程序中调整图像大小是必要的。毕竟,谁愿意等待通过3G网络上传5MP图像呢?我知道我当然不知道

谢谢

更新-找到在应用程序线程(非UI线程)上调整WP7上图像大小的解决方案


因为您不能在WP7应用程序中使用反射(DLR)。

用户对我的问题的回答在技术上是正确的,但我对缺乏解决方案的建议感到有点失望。Tsk,Tsk。
protected Stream ResizeImage(WriteableBitmap tempBitmap, int maxEdge)
{
    WriteableBitmap wb = tempBitmap;

    // Resize to Max Values...
    Size widthHeight = GetMaxWidthHeight(wb.PixelWidth, wb.PixelHeight, maxEdge);
    Stream resizedStream = new MemoryStream();
    wb.SaveJpeg(resizedStream, (int)widthHeight.Width, (int)widthHeight.Height, 0, 90);
    return resizedStream;
}