2010-09-10 12 views
14

Por lo general, cuando se añade el manejador Page_Load eventos en un archivo de código subyacente de Visual Studio (por ejemplo, hacer doble clic en la página en modo diseñador), que termina pareciéndose a esto:ReSharper sugerencia Load = pageLoad

/// <summary> 
/// Handles the Load event of the Page control. 
/// </summary> 
/// <param name="sender">The source of the event.</param> 
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> 
protected void Page_Load(object sender, EventArgs e) 
{ 
    // ... 
} 

Pero ReSharper sugiere Name 'Page_Load' does not match rule 'Methods, properties and events'. Suggested name is 'PageLoad'. Supongo que hay una mejor manera de definir el controlador para la carga de la página, pero no recuerdo cuál es la sintaxis, pero me imagino que resolvería esta advertencia de Resharper.

Tal vez algo como:

/// <summary> 
/// Raises the <see cref="E:System.Web.UI.Control.Load"/> event. 
/// </summary> 
/// <param name="e">The <see cref="T:System.EventArgs"/> object that contains the event data.</param> 
protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 
    // ... 
} 

pero me parece recordar que OnLoad y PageLoad no son exactamente lo mismo?

Respuesta

8

OnLoad y Page_Loadson esencialmente iguales. Page_Load se invoca a través de la reflexión si AutoEventWireup está habilitado en el Page. OnLoad es un método virtual protegido de la clase Control (que hereda la clase Page).

Consulte Inside AutoEventWireup para un análisis en profundidad de cómo funciona AutoEventWireup y por qué existe.

comunidad El StackOverflow también tiene algunos inputonwhetheritisbetter para controlar el evento Load o reemplazar el método OnLoad.

+1

Ese es un enlace útil con una buena explicación. aclamaciones. :) –

44

simplemente para la corrección pensé que iba a añadir aquí la respuesta que obtuvo de una "David Benson" when you asked on jetbrains.net:

Si vas a Opciones ReSharper, bajo Idiomas seleccionar C# Naming estilo. Seleccione el botón Configuración avanzada ... y en el Event subscriptions on fields:, elimine On al frente de $event$, por lo que es $object$_$event$. Eso debería eliminar la advertencia.

Para mí, esta es la forma más fácil de aplacar ReSharper frente a una gran base de código de aplicación web existente.

+2

En mi humilde opinión, esta es la respuesta correcta a la pregunta (+1 porque me ayudó) –

+0

Estoy de acuerdo. Esta es una solución más simple al problema. Parece un error en R # para mí que, de forma predeterminada, no avisará si usa Page_OnLoad. – comecme

+0

belleza, este problema me ha molestado durante meses y nunca me molesté en buscarlo. Esto elimina las advertencias de Page_Load Page_Init, etc., pero mantiene las advertencias para todas las otras advertencias intactas. ¡Gracias! –

0

Es un error en ReSharper 6.0 y versiones anteriores. En 6.1 está arreglado. Para los manejadores de AutoEventWireup no sugerirá ningún cambio, no importa qué configuración de nombres tenga.