gpt4 book ai didi

c# - CaSTLe DynamicProxy - 'classToProxy' 必须是一个类

转载 作者:行者123 更新时间:2023-11-30 15:01:20 25 4
gpt4 key购买 nike

我可能遗漏了一些非常简单的东西。

我只是想写一个非常简单的 DynamicProxy 用法示例 - 我基本上想拦截调用并显示方法名称和参数值。我有如下代码:

public class FirstKindInterceptor : IInterceptor
{
public void Intercept(IInvocation invocation)
{
Console.WriteLine("First kind interceptor before {0} call with parameter {1} ", invocation.Method.Name, invocation.Arguments[0]);
invocation.Proceed();
Console.WriteLine("First kind interceptor after the call");
}
}

public interface IFancyService
{
string GetResponse(string request);
}

public class FancyService : IFancyService
{
public string GetResponse(string request)
{
return "Did you just say '" + request + "'?";
}
}

class Program
{
static void Main(string[] args)
{
var service = new FancyService();
var interceptor = new FirstKindInterceptor();
var generator = new ProxyGenerator();
var proxy = generator.CreateClassProxyWithTarget<IFancyService>(service, new IInterceptor[] { interceptor } );

Console.WriteLine(proxy.GetResponse("what?"));
}
}

但是,当我运行它时,出现以下异常:

Unhandled Exception: System.ArgumentException: 'classToProxy' must be a class Parameter name: classToProxy

我错过了什么?

最佳答案

错误是 CreateClassProxyWithTarget 需要是一种类而不是接口(interface)。 CreateInterfaceProxyWithTarget 使用接口(interface)。

关于c# - CaSTLe DynamicProxy - 'classToProxy' 必须是一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14431447/

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