2012-01-08 14 views
8

He puesto un código dentro del MainWindow público() {} pero seguí recibiendo algunos errores de análisis XAML tan pronto como lo hice (no en mi computadora sino en otros 3 que ya lo probé - ¡sí!)¿Cómo ejecutar código correctamente cuando se inicia una aplicación C#?

¿Existe la forma preferida de ejecutar el código TAN PRONTO como se inicia la aplicación?

La teoría es que quiero que llame a casa y le pregunte si está bien para comenzar. Si no es así, quiero que la aplicación se cierre. Llámelo una protección de copia improvisada :)

+1

¿De qué tecnología estás hablando? formas de Windows? asp.net formularios web? asp.net mvc? wpf? – balexandre

+0

@balexandre, buena pregunta. Mi conjetura/suposición es WPF, debido a las etiquetas utilizadas y los errores XAML mencionados y ejecutarlo en diferentes computadoras. – Lucero

+1

@Lucero, la etiqueta 'wpf' fue agregada por mí, debido a la conversación sobre errores XAML y' MainWindow'. – svick

Respuesta

19

En circunstancias normales, WPF crea el método Main (el punto de entrada de la aplicación) para usted. Sus opciones

  • Cree un controlador para el evento Application.Startup y coloque allí su código. Alternativamente, puede anular el método OnStartup().
  • Si es demasiado tarde para usted, coloque su código en el constructor sin parámetros App (probablemente no exista, pero puede crearlo).
  • Si incluso eso es demasiado tarde, puede crear su propio método Main(). There are several ways how to do that. Probablemente lo más fácil sea ponerlo en otra clase y decirle a Visual Studio que desea usar este método en las propiedades del proyecto.

Por otro lado, ha dicho que está obteniendo algunos errores de análisis XAML poco claros. ¿Tal vez deberías averiguar qué significan exactamente?

0

Tiene Window.Loaded evento en WPF.

Pero si si desea comprobar si hay carrera permiso antes de cargas de aplicaciones (por alguna Consumo de recursos o alguna estrategia de negocios) utilizan un bootstrapper una pequeña separada executable que lanzó por primera vez por mainexe y después si todo está bien a bootstrapper carreras main exe

+0

'Window.Loaded' se llama incluso después del constructor' Window', que según OP es demasiado tarde. – svick

+0

@svick: no veo el punto de "demasiado tarde". OP dice que quiere ejecutar el cheque * tan pronto como * la aplicación comience. Entonces, hay, imo, una opción "normal" es capturar 'Window.Loaded' o usar' bootstrapper', que es más complicado de implementar, pero probablemente lo que OP quiere realmente. – Tigran

Cuestiones relacionadas