我正在尝试获取使用System.IO.FileStream
类创建的Filehandle的值。
using System.IO;
Filestream fs = New FileStream("c:/1/txt",FileMOde.OpenorCreate,FileAccess.ReadWrite);
Intptr file_ptr = fs.Handle;
当我在带有调试配置的XP-x86操作系统中运行它时,它运行正常。但是当我在带有发布配置的Ce-Arm OS中运行它时,它会抛出一个错误。
System.IO.FileStream
不包含Handle
的定义,并且没有可以找到接受类型Handle
的第一个参数的扩展方法System.IO.FileStream
(您是否缺少using指令或汇编参考?)
当我尝试构建发布配置时,是否应该进行任何更改。 我知道发布配置将打开所有编译器优化。但它与内置类和属性有什么关系呢?我真的很困惑。请帮忙。
提前致谢。
答案 0 :(得分:0)
这里有一些事情发生。
FileStream
没有暴露文件句柄,我想说可能是有充分理由的。这就是你看到的错误的具体原因。使用托管流外部的句柄进行混乱可能会导致管理端进入不确定状态并导致错误。为什么,你究竟需要那个处理?如果我们知道这一点,也许我们可以提出一种解决方法,但通常使用原生句会导致不好的事情发生。