我在编译一个C# ASP.NET应用程序时,在Visual Studio 2008中收到了奇怪的警告。请问有人能向我解释这个警告的含义吗?以下是警告内容:
至少有一个'IasHelper.Process'的参数无法被运行时编组器编组。因此,这些参数将作为指针传递,并且可能需要使用不安全代码来操作。
至少有一个'IasHelper.Process'的参数无法被运行时编组器编组。因此,这些参数将作为指针传递,并且可能需要使用不安全代码来操作。
Marshal类负责将非托管代码/类转换为托管类,反之亦然。请参阅Marshal Class的MSDN文档。
如果您包含某些Interop程序集以访问COM对象或类似对象,则可能会出现Marshal(l)er无法处理该操作的情况。因此,您的程序中存在准非托管部分,这可能导致像缓冲区溢出等不良后果。这样,您就离开了托管代码的安全、舒适世界,进入了C/C++及其可怕兄弟的寒冷、危险境地。:-)