在F#.net中打开特定代码块的命名空间

Rob*_*ino 3 .net f# namespaces

我知道这在C#中是不可能的; 最接近的是在代码文件的顶部形成一个别名.有没有办法在F#中做到这一点?

对于我的问题的C#类比,请参阅问题:

我的猜测是"不,使用别名." 但没有冒险,没有任何收获.

pad*_*pad 5

打开命名空间的最小范围是在一个模块中.

解决方法是将函数及其打开的命名空间放入自动打开的子模块中,以便open命令不会污染父模块,并且子模块对用户是透明的:

[<AutoOpen>]
module Utils =
    open System.IO    
    // Now you do not have to include the full paths.
    let writeToFile filename (text: string) =  
      let stream = new FileStream(filename, FileMode.Create)
      let writer = new StreamWriter(stream)
      writer.WriteLine(text)
Run Code Online (Sandbox Code Playgroud)