Mik*_*oud 5 .net c# log4net postsharp
net\2.0\releaselog4net二进制文件下载目录中检索引用)[Serializable]
public class MethodBoundaryAspect : PostSharp.Aspects.OnMethodBoundaryAspect
{
ILog _logger = LogManager.GetLogger("MethodBoundaryAspect");
public override void OnEntry(PostSharp.Aspects.MethodExecutionArgs args)
{
_logger.DebugFormat("The user {0} entered the method {1} at {2}.",
HttpContext.Current.Profile.UserName,
args.Method.Name,
DateTime.Now);
base.OnEntry(args);
}
public override void OnExit(PostSharp.Aspects.MethodExecutionArgs args)
{
_logger.DebugFormat("The user {0} exited the method {1} at {2}.",
HttpContext.Current.Profile.UserName,
args.Method.Name,
DateTime.Now);
base.OnExit(args);
}
public override void OnException(PostSharp.Aspects.MethodExecutionArgs args)
{
_logger.DebugFormat("The user {0} was executing the method {1} when an unhandled exception occurred at {2}.{3}{4}",
HttpContext.Current.Profile.UserName,
args.Method.Name,
DateTime.Now,
Environment.NewLine,
args.Exception.ToString());
base.OnException(args);
}
}
Run Code Online (Sandbox Code Playgroud)
无法序列方面:键入"log4net.Core.LogImpl"在大会"log4net的,版本= 1.2.11.0,文化=中性公钥= 669e0ddf0bb1aa2a"未标记为可序列.
如何进行log4net.Core.LogImpl序列化以便我可以编译此解决方案?
Mik*_*oud 11
根据Grant和mtsiakiris的评论,我通过[NonSerialized]在字段中添加属性来解决这个问题,如下所示:
[NonSerialized]
ILog _logger = LogManager.GetLogger("MethodBoundaryAspect");
Run Code Online (Sandbox Code Playgroud)
然后在序列化期间忽略它.发生这种情况的原因是因为PostSharp需要在IL生成期间序列化该属性.
| 归档时间: |
|
| 查看次数: |
2383 次 |
| 最近记录: |