问题标签 [interception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
9538 浏览

c# - C# unity 按属性截取

有没有办法在 C# unity 中使用属性拦截并将对象注册代码保留在 XML 文件中(如 app.config)?如果是的话,你能给我提供代码吗?这样的注册应该是什么样子?我做了很多解决方法,但没有找到解决这个问题的有效解决方案。

0 投票
3 回答
2318 浏览

c# - unity拦截GetCustomAttribute

在此先感谢您的帮助!(是的,底部有一个问题)

我正在使用 Unity 3.x 拦截来执行 AOP 前后数据库连接和事务活动。数据库拦截器总是被实例化,事务拦截器是基于 CustomAttributeMatchingRule 的,两者都通过 InterfaceInterceptor。我在我的 TransactionAttribute 中设置了一些属性:

作为我在单元测试中使用的示例。我想在我的 TransactionCallHandler 类调用方法中访问它们。我看过例子说

是访问它的方式,但我的交易变量为空。我的结论是正在检查拦截代理类的自定义属性,而不是原始的具体实例。

我的解决方法是一直反映到类级别,深入了解被拦截的正确方法是什么,然后从那里执行获取自定义属性。

(如果方法有重载,还有大约 30 行代码可以确保我不会访问错误的方法名称;因此性能拖累......)

所以,毕竟,我的问题是:我没有正确地执行反射吗?我应该报告 Unity 中的错误吗?

这是我的容器定义:

0 投票
1 回答
114 浏览

wso2 - WSO2 ESB:传入消息拦截

如何拦截 ESB 的所有传入消息?

我想处理 ESB 接收到的所有消息。我可以使用 ESB 中的处理程序和模块来完成这项工作吗?

0 投票
1 回答
2447 浏览

android - ListView 中的自定义 onInterceptTouchEvent

如何onInterceptTouchEvent()在 aListView中实现一个自定义,将滚动优先级赋予孩子的ListView滚动,并且一旦他们滚动,就将其返回给ListView?我想优先考虑内心的看法。

0 投票
0 回答
848 浏览

c - 拦截某些系统调用时Linux可加载内核模块内存错误

我试图拦截系统调用以改变其中一些的行为。我使用 LKM 以下描述的内容:http: //syprog.blogspot.co.uk/2011/10/hijack-linux-system-calls-part-iii.html

但是,在为某些系统调用执行此操作时,我遇到了一些问题,例如:

创建分段错误。

这会在 system_call_fastpath(错误的 RIP 值)中生成“无法处理内核分页请求”。

系统调用在 sys_call_table 中被这样修改:

并在模块卸载时放回:

这可能是非常简单的事情,但我真的不明白。拦截对 open、mkdir 或 exit 的调用没有问题,但我无法真正理解其他一些原因问题,因为替换只是调用原始函数。

编辑:它在调用时失败,而不是在初始化期间。

EDIT2:我找到了使用 kprobe 的“解决方案”。鉴于我只想使用子进程 pid 的 do_fork(在 sys_clone 中实际调用的)的返回值,如果我想更改 sys_clone 的行为,它实际上不会因为明显的原因而工作。将此用作参考http://www-users.cs.umn.edu/~boutcher/kprobes/

实际的解决方案如下:

在模块初始化中:

注销模块时:

0 投票
1 回答
684 浏览

linq - 有什么方法可以拦截所有 Linq to SQL 查询?

我已经构建了一些可以重建表达式树的代码,这样我就可以避免触发不支持的 SQL 转换异常,只要我调用我的函数来替换 iqueryable,它就可以正常工作。问题是我希望它自动应用于我项目中的所有查询,而不必担心分别在每个查询上调用此函数。有什么办法可以拦截一切吗?

我尝试使用 Reflection.Emit 创建一个包装提供程序并使用反射在数据上下文中替换它,结果发现即使使用 Reflection.Emit 我也无法实现内部 IProvider 接口。

我还尝试用基于 RealProxy 的类替换提供程序,该类适用于非编译查询,但 CompiledQuery.Execute 方法抛出异常,因为它不会强制转换为 SqlProvider 类。我尝试用另一个代理替换对提供程序上的 Compile 方法的响应,以便我可以拦截 Execute 调用,但是未能检查返回类型是否正确。

我对任何其他想法或使用我已经尝试过的方法持开放态度?

0 投票
3 回答
127 浏览

c - 检查有限线截距 C

我试图创建一个函数来检查两条有限线是否相互交叉(返回 0 或 1 )。

首先我声明这些结构

比,我在这里开始功能。

我不知道为什么某些测试不起作用,例如具有以下值的测试:

如果您找不到问题并知道有效的算法,那也很棒。提前致谢!

0 投票
1 回答
671 浏览

c# - AOP Ninject 停止被调用的拦截方法

我正在使用 Ninject 和 AOP 进行一些缓存。我有一个属性,我可以将其应用于存储库中的任何方法,并且在 BeforeInvoke 上,如果有一个缓存对象,它将返回我的缓存对象,并且 AfterInvoke 创建一个缓存对象。这一切都很好,但我不知道如何停止调用初始方法,即如果有一个缓存的对象,则返回它而不是调用一个被拦截的方法。我的拦截器在这里:

即使在 else 语句中,我显然不是说调用被调用的方法'invocation.Proceed();' 它仍然调用它。我如何告诉 ninject 只返回 invocation.ReturnValue ?

0 投票
0 回答
545 浏览

caching - Unity.WebApi 错误:传递的类型必须是接口

所以我在我的 MVC 应用程序上安装了 Unity.WebApi。在名为“Areas”的文件夹中还有一个 web api 部分。

我正在通过 Web Api 上的策略注入和属性进行连接以实现缓存。

这是我的 Bootstrapper.cs 类:

在 global.asax 我有这个:

我已经实现了缓存属性和缓存呼叫处理程序。而且我希望能够将我的 webapi 方法归于属性,以便它们具有缓存能力。

我相信我在这里正确实施了大多数事情。但是当我从 URL 访问 api 方法时,我不断收到此错误

传递的类型必须是接口。System.ArgumentException

在 System.RuntimeTypeHandle.VerifyInterfaceIsImplemented(RuntimeTypeHandle 句柄,RuntimeTypeHandle interfaceHandle) 在 System.RuntimeType.GetInterfaceMap(Type ifaceType) 在 Microsoft.Practices.Unity.InterceptionExtension.InterfaceInterceptor.d__0.MoveNext() 在 Microsoft.Practices.Unity.InterceptionExtension.PolicyInjectionBehavior。 .ctor(CurrentInterceptionRequest interceptionRequest, InjectionPolicy[] 策略, IUnityContainer 容器) 在 lambda_method(Closure, IBuilderContext) 在 Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.<> c_DisplayClass1.b_0(IBuilderContext context) 在 Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(IBuilderContext context) 在 Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext context) 在 Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext context) 在 Microsoft。 Practices.ObjectBuilder2.BuilderContext.NewBuildUp(NamedTypeBuildKey newBuildKey, Action 1 childCustomizationBlock) at Microsoft.Practices.Unity.InterceptionExtension.InterceptionBehaviorsPolicy.<GetEffectiveBehaviors>d__4.MoveNext() at System.Linq.Buffer1..ctor(IEnumerable 1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source) at Microsoft.Practices.Unity.InterceptionExtension.InstanceInterceptionStrategy.PostBuildUp(IBuilderContext context) at Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext context ) 在 Microsoft.Practices.Unity.UnityContainer.DoBuildUp(类型 t,现有对象,字符串名称,IEnumerable`1 resolverOverrides)

0 投票
1 回答
1379 浏览

c# - 使用 WPF 和 INotifyPropertyChanged 进行 Unity 拦截

我一直在对现有应用程序进行重构,并且尝试在属性上使用 Attribute 来使用 Unity 拦截触发 NotifyPropertyChanged 事件。我到了事件触发的地步,但控件没有更新。

我不确定它是否正确调用了事件,所以在我的 ViewModelBase 上我创建了一个调用属性更改事件的 DispatchPropertyChanged 方法。此方法用于在直接从视图模型调用时启动属性更改,但是当从通过拦截处理程序内的反射检索的视图模型调用时,它不起作用。

我插入了指向https://www.dropbox.com/s/9qg2n0gd2n62elc/WPFUnityTest.zip的链接。如果您打开此解决方案并运行应用程序,然后单击“重置”按钮,您将看到“正常”文本框更新,但“Unity”文本框没有更新。

如果在 MainWindowViewModel 的第 65 行和 NotifyPropertyChangedHandler 的第 53 行放置断点,您将看到处理程序正在工作,正在调用调度方法,并且正在调用事件。但是,只有“正常”一个更新。

关于为什么“Unity”文本框没有更新的任何帮助都会很棒,谢谢!

阿曼达

编辑:

很抱歉最初没有包括这个,我真的不知道问题出在哪里。这是下面正确的拦截行为的原始代码: