Xamarin / Android: F # scoping – ¿Cómo veo un espacio de nombres en un archivo diferente?

Xamarin / Android: F # scoping – ¿Cómo veo un espacio de nombres en un archivo diferente?

Sé que esto suena muy básico, pero no puedo conseguirlo funcionar. Voy a ilustrar con un ejemplo:

Comienzo una nueva solución, selecciono una nueva aplicación F # Android y la llamo FSScopeTest1, dándome MainActivity.fs

namespace FSScopeTest1 open System open Android.Content open Android.OS open Android.Runtime open Android.Views open Adroid.Widget [<Activity (Label = "FSScopeTest1", MainLauncher = true)>] type MainActivity () = inherit Activity () let mutable count:int = 1 override this.OnCreate (bundle) = base.OnCreate (bundle) // Set our view from the "main" layout resource this.SetContentView (Resource_Layout.Main) // Get our button from the layout resource, and attach an event to it let button = this.FindViewById<Button>(Resource_Id.myButton) button.Click.Add (fun args -> button.Text <- sprintf "%d clicks" count count <- count + 1 ) 

A continuación, agregar un nuevo archivo F # Source, ScopeTestNS.fs

 namespace ScopeTestNS module ScopeTestMod = let astr = "some text" 

A continuación, agregar a MainActivity.fs, en la segunda línea:

 open ScopeTestNS 

Y cambiar la expresión lamba para button.Click.Add para leer

  button.Click.Add (fun args -> // button.Text <- sprintf "%d clicks!" count // count <- count + 1 button.Text <- ScopeTestMod.astr ) 

Ahora, cuando construyo la solución, obtengo el error:

 The namespace or module "ScopeTestMod" is not defined. 

¿Cómo hago visible mi espacio de nombres ScopeTestNS en MainActivity.fs para que pueda ver los módulos que defino allí?

Muchas gracias, Ross

El compilador f # lee los archivos de origen en un orden específico (a diferencia del compilador c #). Debe asegurarse de que su proyecto ha incluido los archivos en el orden correcto para que pueda acceder a módulos definidos en otros archivos.

EDIT basado en el comentario de Onorio Catenacci:

Al parecer, el enlace F # utilizado en Xamarin Studio actualmente no admite la reordenación de archivos en un proyecto F # (vea este problema github https://github.com/fsharp/fsharpbinding/issues/135 ). Sin embargo, los archivos .fsproj son archivos XML sencillos que se pueden editar con un editor de texto para cambiar el orden en que se compilan los archivos.

EDITAR EDITAR

Al parecer, el complemento F # en estudio xamarin ahora permite arrastrar y soltar para reordenar archivos (gracias a @ 7sharp9 para la actualización)

  • Registro Xamarin no manejado (Android sin capturar) excepciones
  • Arrastrar y soltar en formas Xamarin
  • Operador '! =' No se puede aplicar a los operandos de tipo 'Tarea' e 'int'
  • Desarrollar una aplicación C # para Windows Mobile, Android y iPhone
  • Cómo reciclar / eliminar el mapa de bits utilizado por tema
  • ¿Cómo usar la Facturación en la aplicación con MonoDroid?
  • La aplicación no se implementa en el emulador de Android Intel en la API 19 (plataforma 4.4.2)
  • Android - Bitmap.CreateBitmap - excepción de puntero nulo
  • ¿Cómo tratar con "$ {applicationid}" en Xamarin?
  • ¿Es posible especificar dinámicamente el nombre del paquete durante la compilación?
  • Mono para Android - Arquitectura soportada - Drop x86?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.