He pasado las últimas horas leyendo sobre el uso de las staticclases y tratando de averiguar si debería usarlas o no, pero aún no he llegado a ninguna conclusión. Parece que el argumento podría ir en cualquier dirección. En mi aplicación, he creado lo que llamo "clases auxiliares", que contiene métodos que realizarán tareas muy comunes para mí y se llamarían a través de mi aplicación ( ASP.Net MVCusando la aplicación web C#) y la simple pregunta es, ¿deberían ser realmente estáticos o no? ?
Aquí hay un ejemplo de uno de mis ayudantes.
public static class ActiveDirectoryHelper
{
public static PrincipalContext GetPrincipalContext(string ouName)
{
var fullOUName = string.Concat("OU=", ouName,",DC=");
return new PrincipalContext(ContextType.Domain, "", fullOUName, ConfigurationManager.AppSettings["ServiceAccountUser"], ConfigurationManager.AppSettings["ServiceAccountPassword"]);
}
public static PrincipalSearcher GetAllUsersInOU(string ouName)
{
var principalContext = GetPrincipalContext(ouName);
var userPrincipal = new UserPrincipal(principalContext);
return new PrincipalSearcher(userPrincipal);
}
public static UserPrincipal GetUserPrincipal(string userName, string ouName)
{
var principalContext = GetPrincipalContext(ouName);
return UserPrincipal.FindByIdentity(principalContext, userName);
}
}
PrincipalContextclase, y será llamado como: PrincipalContext.Get(ouName). Es esencialmente un método de fábrica.