Środowisko
- Windows 7 x64
- PostSharp 2.1.7.30 zainstalowany
- PostSharp 2.1.7.29 (odniesienie pobierane z PostSharp zainstalować katalog)
- log4net 1.2.11.0 (odniesienie pobierane z katalog
net\2.0\release
pobierania plików binarnych log4net) - Aplikacja ASP.NET 2.0
- Visual Studio 2010 SP1
Aspect
[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);
}
}
Błąd kompilacji
Nie można serializować aspektach: typ 'log4net.Core.LogImpl' w log4net montażowych, Version = 1.2. 11.0, Culture = neutral, PublicKeyToken = 669e0ddf0bb1aa2a 'nie jest oznaczony jako możliwy do serializacji.Otrzymuję komunikat "Nie można sparametryzować aspektów: wpisz" log4net.Core.LogImpl "w zespole" log4net ... "" - w jaki sposób mogę dokonać serializacji?
Jak mogę przekształcić log4net.Core.LogImpl
w wersję szeregową, aby móc skompilować to rozwiązanie?
Umieść program rejestrujący poza klasą jako obiekt statyczny. Utwórz nową metodę wewnątrz klasy, która najpierw zainicjuje rejestrator. – mtsiakiris
Ponadto masz klasę serializowalną, która nie ma żadnych członków (właściwości) do serializacji. (!) – mtsiakiris
Będziesz musiał wykonać ręczną serializację. –