Tôi đã dành vài giờ qua để đọc về việc sử dụng các static
lớp học và cố gắng tìm hiểu xem tôi có nên sử dụng chúng hay không nhưng vẫn chưa đưa ra kết luận nào. Có vẻ như cuộc tranh luận có thể đi một trong hai cách. Trong ứng dụng của mình, tôi đã tạo ra cái mà tôi gọi là "các lớp trợ giúp" chứa các phương thức sẽ thực hiện các nhiệm vụ rất phổ biến đối với tôi và sẽ được gọi ra khỏi ứng dụng của tôi ( ASP.Net MVC
sử dụng Ứng dụng Web C#
) và câu hỏi đơn giản là chúng có thực sự tĩnh hay không ?
Đây là một ví dụ về một trong những người giúp đỡ tôi.
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
lớp và được gọi là : PrincipalContext.Get(ouName)
. Đó thực chất là một phương pháp của Nhà máy.