Ответ 1
F # не поддерживает псевдонимы пространств имен - только модули и типы. Итак, чтобы разрешить конфликты между сборками .NET, вам, к несчастью, нужно будет определить псевдонимы для всех типов, которые вы используете.
Это может быть несколько проще благодаря тому, что псевдонимы типа F # рассматриваются как объявления обычного типа (компилятором F #, а не временем выполнения). Это означает, что в отличие от ключевого слова С# using
вы можете определить их в файле spearate:
// Aliases.fs
namespace SysIO
// Open the 'System' namespace to get a bit shorter syntax
// ('type File = File' is interpreted as discriminated union)
open System
type File = IO.File
type Directory = IO.Directory
В остальной части приложения вы можете использовать SysIO.File
. Вам все равно придется писать псевдонимы, но по крайней мере вам не нужно делать это в каждом файле...