Saya telah menghabiskan beberapa jam terakhir membaca tentang penggunaan static
kelas dan mencoba mencari tahu apakah saya harus menggunakannya atau tidak tetapi masih belum sampai pada kesimpulan apa pun. Tampaknya argumennya bisa berjalan baik. Dalam aplikasi saya, saya telah membuat apa yang saya sebut "kelas pembantu" yang berisi metode yang akan melakukan tugas yang sangat umum bagi saya dan akan dipanggil melalui aplikasi saya ( ASP.Net MVC
menggunakan Aplikasi Web C#
) dan pertanyaan sederhananya adalah, haruskah mereka benar-benar statis atau tidak ?
Ini adalah contoh salah satu pembantu saya.
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
kelas, dan disebut seperti: PrincipalContext.Get(ouName)
. Ini pada dasarnya metode Pabrik.