【发布时间】:2018-06-05 22:41:52
【问题描述】:
我无法让 autofac 拦截。我的 .net 核心应用程序中有以下设置:
// 记录器创建: //
public class Logger : IInterceptor
{
public void Intercept(IInvocation invocation)
{
// Logging removed for now
var watch = System.Diagnostics.Stopwatch.StartNew(); // Added break point here
invocation.Proceed();
watch.Stop();
var executionTime = watch.ElapsedMilliseconds;
}
}
// 类创建://
[Intercept(typeof(Logger))]
public class ServiceProxy: ServiceInterface
{
public User GetUser(String username, String password)
{
var service = ServiceHelper.GetODataClaimService();
var query = from a in service.Users
select a;
var dsq = query.ToDataServiceQuery<User>();
var result = dsq.ToListSync<User>();
var user = result.FirstOrDefault();
return user;
}
}
// 接口创建://
public interface ServiceInterface
{
User GetUser(String username, String password);
}
// 拦截配置 //
public class Interceptor
{
public static void Configure()
{
var builder = new ContainerBuilder();
builder.Register(a => new Logger());
builder.RegisterType<ServiceProxy>().As<ServiceInterface>().EnableInterfaceInterceptors().InterceptedBy(typeof(Logger)); // Tried removing intercepted by
var container = builder.Build();
var worker = container.Resolve<ServiceInterface>();
builder.Build()
}
}
我在记录器中设置了一个断点,以查看它是否曾进入该代码块。 它永远不会。我在这里想念什么? 我已经尝试了很多配置,但似乎没有任何效果。 另外 - Configure 方法是从应用程序启动中调用的。
请指教。
【问题讨论】:
标签: autofac