gpt4 book ai didi

c# - Autofac RegisterType 不提供 EnableInterfaceInterceptors

转载 作者:太空宇宙 更新时间:2023-11-03 21:07:01 26 4
gpt4 key购买 nike

我想使用 Autofac 探索自定义拦截器。我目前正在为 DynamicProxy 使用 Autofac 4.2.0 版和 CaSTLe.Core 3.3.3 版。

我从以下基本行为开始,想在 Autofac 中注册一个测试类及其接口(interface):

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 包。 See the docs here.

关于c# - Autofac RegisterType 不提供 EnableInterfaceInterceptors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40610000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com