Dependency injection asp.net 5依赖项注入拦截调用方法

Dependency injection asp.net 5依赖项注入拦截调用方法,dependency-injection,asp.net-core,Dependency Injection,Asp.net Core,我正在使用asp.NET5的新DIP(依赖项注入)。 到目前为止,我做得很好 但现在是时候做更复杂的事情了。就像我过去对温莎城堡或统一所做的那样。 我需要做一个类的代理,拦截调用并记录它 AOP(面向方面的程序) 在温莎城堡,它被称为:迪纳米城堡 在asp.NET5中,我如何才能做到同样的效果 例如: public interface ITracingInterceptorHelper { void BeforeCall(string typeName, string methodNam

我正在使用asp.NET5的新DIP(依赖项注入)。 到目前为止,我做得很好

但现在是时候做更复杂的事情了。就像我过去对温莎城堡或统一所做的那样。 我需要做一个类的代理,拦截调用并记录它

AOP(面向方面的程序)

在温莎城堡,它被称为:迪纳米城堡 在asp.NET5中,我如何才能做到同样的效果

例如:

public interface ITracingInterceptorHelper
{
    void BeforeCall(string typeName, string methodName, Dictionary<string, object> parameters);
    void ErrorOnCall(string typeName, string methodName, Exception e);
    void AfterCall(string typeName, string methodName, object returnValue);
}


public class TracingInterceptor : BaseInterceptor, IInterceptor
    {
        private readonly ITracingInterceptorHelper _helper;

        public TracingInterceptor(ITracingInterceptorHelper tracingInterceptorHelper)
        {
            _helper = tracingInterceptorHelper;
        }


        public void Intercept(IInvocation invocation)
        {
        //...
        }
    }
公共接口ITracingInterceptorHelper
{
调用前作废(字符串类型名称、字符串方法名称、字典参数);
void ErrorOnCall(字符串类型名、字符串方法名、异常e);
void AfterCall(字符串类型名、字符串方法名、对象返回值);
}
公共类跟踪侦听器:BaseInterceptor,IIInterceptor
{
私有只读ITracingInterceptorHelper\u helper;
公共跟踪接收器(ITracingInterceptorHelper跟踪接收器助手)
{
_helper=tracinterceptorhelper;
}
公共无效拦截(IInvocation调用)
{
//...
}
}
谢谢。问候

在asp.NET5中,我如何才能做到同样的效果

你不能。对于ASP.NET 5的内置容器,这是不可能的。内置的容器不适合用于

如果您正在使用的容器运行良好,则尤其不应“降级”到内置容器