используйте аспект, который наследуется от OnMethodBoundaryAspect и в OnMethodEntry / OnMethodExit, просто сделайте вызов из вашего аспекта в Unity, чтобы разрешить ваш регистратор, а затем войдите в систему.
Примените аспект любым способом, который вам нуженметод или даже уровень сборки)
[Serializable]
[MulticastAttributeUsage(MulticastTargets.Method, Inheritance=MulticastInheritance.Strict)]
public class LogAspect : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionArgs args)
{
var Logger = Unity.Resolve<T>();
Logger.Write(args.Method.Name + " enter");
}
public override void OnExit(MethodExecutionArgs args)
{
var Logger = Unity.Resolve<T>();
Logger.Write(args.Method.Name + " exit");
}
}
Чтобы получить контейнер Unity, я бы использовал шаблон поиска сервисов.
public class iocServiceLocator
{
private static readonly IUnityContainer _container;
static iocServiceLocator()
{
_container = new UnityContainer();
}
public static void Initialize()
{
InitializeBootStrap();
}
private static void InitializeBootStrap()
{
//Register types here
}
public static T Get<T>()
{
return _container.Resolve<T>();
}
public static T Get<T>(string key)
{
return _container.Resolve<T>(key);
}
}