tomar esta clase como ejemplo:NHibernate excepción: método Add debe ser 'público/virtuales protegidos' o 'interna protegida virtual'
public class Category : PersistentObject<int>
{
public virtual string Title { get; set; }
public virtual string Alias { get; set; }
public virtual Category ParentCategory { get; set; }
public virtual ISet<Category> ChildCategories { get; set; }
public /*virtual*/ void Add(Category child)
{
if (child != null)
{
child.ParentCategory = this;
ChildCategories.Add(child);
}
}
}
Cuando se ejecuta la aplicación sin la palabra clave virtual del método add, yo conseguir este de error:
method Add should be 'public/protected virtual' or 'protected internal virtual'
entiendo por qué propiedades tienen que declarar como virtual, porque parecían necesita ser modificado mediante la función de carga diferida.
Pero no entiendo por qué los métodos deben declararse como virtuales ... deben ser anulados por qué razón?
Esto muy confuso!
El asker preguntaba acerca de la racionalidad para requerir que los métodos sean específicamente virtuales. Explicó que ya entiende las clases proxy para la carga lenta. –