Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Castle DynamicProxy拦截器能否更改参数值?_C#_Castle Windsor_Castle Dynamicproxy - Fatal编程技术网

C# Castle DynamicProxy拦截器能否更改参数值?

C# Castle DynamicProxy拦截器能否更改参数值?,c#,castle-windsor,castle-dynamicproxy,C#,Castle Windsor,Castle Dynamicproxy,我们正在一个项目中使用DynamicProxy。我已经为一些方法创建了一个拦截器 我知道可以在Castle.DynamicProxy.IInterceptor对象中获取方法参数 在调用invocation.procedure()之前,拦截器是否可以更改传递给方法的参数的值?是-是,它可以 在这种情况下,可以使用IInvocation.Method属性上的反射来获取方法参数;方法参数直接附加到调用。尽管arguments属性是一个只读值(没有公共setter),但它的类型是object[]——因此

我们正在一个项目中使用DynamicProxy。我已经为一些方法创建了一个拦截器

我知道可以在
Castle.DynamicProxy.IInterceptor
对象中获取方法参数

在调用
invocation.procedure()
之前,拦截器是否可以更改传递给方法的参数的值?

是-是,它可以

在这种情况下,可以使用
IInvocation.Method
属性上的反射来获取方法参数;方法参数直接附加到调用。尽管arguments属性是一个只读值(没有公共setter),但它的类型是
object[]
——因此它的属性是可写的

因此,拦截器可以使用与方法参数位置对应的正确索引,通过写入
arguments
对象来更改参数值。

是-是,它可以

在这种情况下,可以使用
IInvocation.Method
属性上的反射来获取方法参数;方法参数直接附加到调用。尽管arguments属性是一个只读值(没有公共setter),但它的类型是
object[]
——因此它的属性是可写的

因此,拦截器可以使用与方法参数位置对应的正确索引,通过写入
arguments
对象来更改参数值