[英]EnableInterfaceInterceptors not available from Autofac RegisterType
我想使用Autofac探索自定义拦截器。 我当前正在使用4.2.0版的Autofac和3.3.3版的Castle.Core用于DynamicProxy。
我从以下基本动作开始,希望在Autofac中使用其接口注册测试类:
using Autofac;
using Castle.DynamicProxy;
class Program
{
static void Main(string[] args)
{
ContainerBuilder builder = new ContainerBuilder();
builder.RegisterType<MyClassA>()
.As<IMyInterface>()
.EnableInterfaceInterceptors()
.InterceptedBy(typeof(MyInterceptor));
builder.RegisterType<MyInterceptor>().AsSelf();
var container = builder.Build();
}
}
问题是“ .EnableInterfaceInterceptors()”行在其下方有一个红色的错误弯曲的行,并带有以下错误:
'IRegistrationBuilder<MyClassA, ConcreteReflectionActivatorData, SingleRegistrationStyle>' does not contain a definition for 'EnableInterfaceInterceptors' and no extension method 'EnableInterfaceInterceptors accepting a first argument of type 'IRegistrationBuilder<MyClassA, ConcreteReflectionActivatorData, SingleRegistrationStyleA>' could be found (are you missing a using directive or an assembly reference?)
到目前为止(如果相关)其他组件的代码是:
public interface IMyInterface
{
void DoWork(string key1, string key2);
}
using System;
public class MyClassA : IMyInterface
{
public void DoWork(string key1, string key2)
{
Console.WriteLine(string.Format("A: {0} - {1}", key1, key2));
}
}
using System;
using Castle.DynamicProxy;
public class MyInterceptor : StandardInterceptor
{
protected override void PreProceed(IInvocation invocation)
{
Console.Write("PreProceed: ");
}
}
有人可以告诉我为什么.EnableInterfaceInterceptors()
不起作用吗?
我猜您忘记了引用Autofac.Extras.DynamicProxy
程序包。 请参阅此处的文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.