Passei as últimas horas lendo sobre o uso das static
aulas e tentando descobrir se eu deveria usá-las ou não, mas ainda não cheguei a nenhum tipo de conclusão. Parece que o argumento poderia ser de qualquer maneira. No meu aplicativo, criei o que chamo de "classes auxiliares", que contém métodos que farão tarefas muito comuns para mim e seriam chamados através do meu aplicativo (uso do ASP.Net MVC
Web App C#
) e a pergunta simples é: eles realmente devem ser estáticos ou não? ?
Aqui está um exemplo de um dos meus ajudantes.
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);
}
}
PrincipalContext
classe, e ser chamado como: PrincipalContext.Get(ouName)
. É essencialmente um método de fábrica.