내 도메인 개체에서 log4net을 직접 사용하는 것이 바람직하지 않은지 궁금합니다 ... ASP.NET MVC 응용 프로그램 측면에서 내 예외를 위해 ELMAH를 사용할 것이지만 정보를 얻기 위해 로그에 기록하고 싶습니다 도메인 모델 자체에 대한 일부 데이터.내 도메인 모델 객체에서 log4net을 직접 사용해야합니까?
주어진 다음의 도메인 객체 : 이것은 고전
public class Buyer
{
protected static readonly ILog log = LogManager.GetLogger(typeof(SupportTicket));
public Buyer()
{
log4net.Config.XmlConfigurator.Configure();
}
private int _ID;
public int ID
{
get { return _ID; }
set
{
_ID = value;
}
}
private IList<SupportTicket> _SupportTickets=new List<SupportTicket>();
public IList<SupportTicket> SupportTickets
{
get
{
return _SupportTickets.ToList<SupportTicket>().AsReadOnly();
}
}
public void AddSupportTicket(SupportTicket ticket)
{
if (!SupportTickets.Contains(ticket))
{
_SupportTickets.Add(ticket);
} else {
log.Warn("Duplicate Ticket Not Added.");
}
}
}
서비스 로케이터는 패턴이 아니기 때문에 종속성 삽입의 목적을 상실합니다. 이 대답은 주관적으로 잘못된 것이 아니며 객관적으로 잘못되었습니다. – jason
Jason과 동의합니다. 추가 정보 : http://blog.ploeh.dk/2010/02/03/ServiceLocatorIsAnAntiPattern.aspx – autonomatt