Ich habe die letzten Stunden damit verbracht, mich über die Verwendung von static
Klassen zu informieren und herauszufinden, ob ich sie verwenden sollte oder nicht, bin aber immer noch zu keinem Ergebnis gekommen. Es scheint, dass das Argument in beide Richtungen gehen könnte. In meiner Anwendung habe ich sogenannte "Hilfsklassen" erstellt, die Methoden enthalten, die sehr häufige Aufgaben für mich erledigen und in meiner Anwendung aufgerufen werden ( ASP.Net MVC
Web App using C#
). Die einfache Frage ist, ob sie wirklich statisch sind oder nicht ?
Hier ist ein Beispiel von einem meiner Helfer.
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
Klasse sein und wie folgt aufgerufen werden : PrincipalContext.Get(ouName)
. Es ist im Wesentlichen eine Factory-Methode.