问题描述
如何获得一个对象(HttpContext)的IntPtr?代码是.net的源码,相关部分如下:IntPtr_context;publicstringGetQueryString(){IntPtrptr;intnum;UnsafeIISMethods.MgdGetQueryString(_context,outptr,outnum);if(ptr==IntPtr.Zero){returnstring.Empty;}returnUnsafeIISMethods.StringFromWCharPtr(ptr,num);}根据上下文源码推测,_context是指向HttpContext的,但是怎样才能将_context指向一个HttpContext实例呢?
解决方案
解决方案二:
学习学习顶上去
解决方案三:
引用楼主huolx2的帖子:
如何获得一个对象(HttpContext)的IntPtr?根据上下文源码推测,_context是指向HttpContext的,但是怎样才能将…
问题和标题有点不明白到底是要Inptr还是要HttpContext
解决方案四:
up
解决方案五:
没有测试:System.Runtime.InteropServices.GCHandlegch=GCHandle.Alloc(httpContext,GCHandleType.Pinned);IntPtr_context=gch.AddrOfPinnedObject();...gch.Free();
解决方案六:
引用4楼dk385的回复:
没有测试:C#codeSystem.Runtime.InteropServices.GCHandlegch=GCHandle.Alloc(httpContext,GCHandleType.Pinned);IntPtr_context=gch.AddrOfPinnedObject();...gch.Free();
帮你顶一下。顶成热贴。
解决方案七:
感谢大康编译通过不过在运行至System.Runtime.InteropServices.GCHandlegch=GCHandle.Alloc(this.Context,GCHandleType.Pinned);时报错:Object包含非基元或非直接复制到本机结构中的数据。如果改为System.Runtime.InteropServices.GCHandlegch=GCHandle.Alloc(this.Context,GCHandleType.Normal);则在运行至IntPtr_context=gch.AddrOfPinnedObject();报错句柄未被固定。
解决方案八:
up
解决方案九:
友情帮顶
解决方案十:
up