엔터프라이즈 라이브러리 로깅 응용 프로그램 블록을 사용하여 메서드 매개 변수 이름, 해당 값 및 반환 형식 값을 기록하는 방법이 있습니까? 아래 코드 샘플을 제공합니다. 요구 사항은 메소드의 입력 매개 변수 값과 반환 형식 값이엔터프라이즈 라이브러리 로깅 응용 프로그램 블록을 사용하여 메서드 매개 변수 및 반환 형식을 로깅
// Complex Types
public class UserDetails
{
public string UserName { get; set; }
public int UserAge { get; set; }
public string UserAddress { get; set; }
}
public class User
{
public string UserId { get; set; }
public string Pwd { get; set; }
}
//Interface
public interface IService
{
UserDetails GetUserDetails(User ReqUser);
}
//Imp
public class Service : IService
{
[LogCallHandler(Categories = new string[] { "General" }, LogBeforeCall = true, LogAfterCall = true ,
BeforeMessage = "This occurs before the call to the target object",AfterMessage="This occured after method call",IncludeParameters=true)]
public UserDetails GetUserDetails(User ReqUser)
{
UserDetails oUD = new UserDetails();
oUD.UserName = "hhh" + ReqUser.UserId;
oUD.UserAge = 100;
oUD.UserAddress = "HHHHHHHHHHHHHHHHHHHHHHH";
return oUD;
}
#endregion
}
//Usage
private void button2_Click(object sender, EventArgs e)
{
IUnityContainer container = new UnityContainer().LoadConfiguration();
container.AddNewExtension<EnterpriseLibraryCoreExtension>();
IService service = container.Resolve<IService>();
User nUser = new User();
nUser.UserId = "TTTTT";
nUser.Pwd = "XXXXX";
UserDetails mm = service.GetUserDetails(nUser);
}
사람이 사용하는 엔터프라이즈 라이브러리 로깅 응용 프로그램 블록을 구현하는 방법을 설명 시겠어요의 로그입니다?
정보를 보내 주셔서 감사합니다. 우리의 계획은 PostSharp를 entlib로 대체하는 것입니다. 그래서 당신의 대답은 나를 위해 일하지 않을 것입니다. – vibinkgl
나는 본다. PostSharp 제약 조건을 알지 못하기 때문에 PostSharp 측면에서 EntLib 로그 작성기를 사용할 수 있다고 생각했습니다. 그런 다음 이번에는 필자의 필요성을 정확하게 생각하면 LogCallHandler를 사용하여 다음 답변을 따라갈 수 있습니다 (주석의 문자 제약 때문에). – Hasan