F # no admite alias de espacios de nombres, solo módulos y tipos. Por lo tanto, para resolver los conflictos entre los ensamblados .NET, desafortunadamente, necesitará definir alias para todos los tipos que está utilizando.
Esto puede ser un poco más fácil gracias al hecho de que los alias tipo F # se ven como declaraciones de tipo normal (por el compilador F #, no por el tiempo de ejecución). Esto significa que, a diferencia con C# using
de palabras clave, puede definir en un archivo 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
En el resto de la aplicación, ahora se puede utilizar SysIO.File
. Todavía tiene que escribir los alias, pero al menos no tiene que hacer eso en todos los archivos ...
Esta es una buena solución, solo necesito un puñado de tipos. –
"solo módulos y tipos": solo son tipos, los módulos no pueden ser alias. estaría felizmente equivocado. – citykid
estoy felizmente equivocado. los módulos se pueden alias de esta manera: módulo ACMEStore = ACME.DB.Store (http://stackoverflow.com/questions/3918744/how-to-use-namespace-or-type-alias-abbreviation) – citykid