Я использую в проекте структуру Interceptors , созданную с помощью Castle DynamicProxy, и написал LogAspect для регистрации операций. Однако LogAspect никак не запускается. Я делюсь своими кодами ниже. Я жду вашей помощи, в чем может быть проблема или какие изменения мне нужно внести для правильной работы.
namespace ebordro.Interceptors
{
//kullanılacak tüm interceptionların temel sınıfı
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public abstract class MethodInterceptionBaseAttribute : Attribute, IInterceptor
{
public int Priority { get; set; } //verilen sırada çalışması için.
public virtual void Intercept(IInvocation invocation)
{
}
}
}
Я создал структуру перехвата с помощью Castle DynamicProxy Что я пробовал:
Я создал структуру перехвата с помощью Castle DynamicProxy и определил класс LogAspect для операций регистрации.
Я указал LogAspect как атрибут, производный от класса MethodInterceptionBaseAttribute .
Я собрал атрибуты, присвоенные методам или классы с помощью класса AspectInterceptorSelector и стремились запускать их в указанном порядке.
Я решил зависимости, используя контейнер DI с ServiceToolForAspect.
Чего я ожидал:
Когда GetAllActionLogAsync метод называется LogAspect вступит в игру и выполнит операции регистрации, запустив OnBefore, OnAfter или другие методы перехвата.
вообще не работает. Методы, похоже, не проходят через перехват. Коды журналирования, которые я написал внутри метода, не работают, и я не получаю никаких сообщений об ошибках.
Я использую в проекте структуру Interceptors , созданную с помощью Castle DynamicProxy, и написал LogAspect для регистрации операций. Однако LogAspect никак не запускается. Я делюсь своими кодами ниже. Я жду вашей помощи, в чем может быть проблема или какие изменения мне нужно внести для правильной работы. [code]namespace ebordro.Interceptors { //kullanılacak tüm interceptionların temel sınıfı [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)] public abstract class MethodInterceptionBaseAttribute : Attribute, IInterceptor { public int Priority { get; set; } //verilen sırada çalışması için.
public virtual void Intercept(IInvocation invocation) { } } } [/code] [code]namespace ebordro.Interceptors { //metotlarlarda kullanılacak olan interception işlemleri için temel sınıf. public class MethodInterception : MethodInterceptionBaseAttribute { protected virtual void OnBefore(IInvocation invocation) { } protected virtual void OnAfter(IInvocation invocation) { } protected virtual void OnException(IInvocation invocation, Exception e) { } protected virtual void OnSuccess(IInvocation invocation) { }
[/code] [b]Что я пробовал:[/b] [list] [*]Я создал структуру перехвата с помощью Castle DynamicProxy [b]Что я пробовал:[/b]
Я создал структуру перехвата с помощью Castle DynamicProxy и определил класс LogAspect для операций регистрации. [*]Я указал LogAspect как атрибут, производный от класса MethodInterceptionBaseAttribute . Я собрал атрибуты, присвоенные методам или классы с помощью класса AspectInterceptorSelector и стремились запускать их в указанном порядке. [*]Я решил зависимости, используя контейнер DI с ServiceToolForAspect. [/list] [b]Чего я ожидал:[/b] [list] [*]Когда GetAllActionLogAsync метод называется LogAspect вступит в игру и выполнит операции регистрации, запустив OnBefore, OnAfter или другие методы перехвата. [/list] [b]Что произошло на самом деле:[/b] [list] [*][code]LogAspect [/code] вообще не работает. Методы, похоже, не проходят через перехват. Коды журналирования, которые я написал внутри метода, не работают, и я не получаю никаких сообщений об ошибках. [/list]