问题标签 [dynamic-proxy]
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.
c# - 从类中调用时,Castle Dynamic Proxy 不拦截方法调用
在使用 Castle 的动态代理时,我遇到了一些(我认为是)奇怪的行为。
使用以下代码:
我期待得到输出:
- 拦截调用:Method1
- 调用方法 1
- 拦截调用:Method2
- 调用方法 2
- 拦截调用:Method2
- 调用方法 2
然而我得到的是:
- 拦截调用:Method1
- 调用方法 1
- 调用方法 2
- 拦截调用:Method2
- 调用方法 2
据我所知,如果调用来自类本身之外,动态代理只能代理方法调用,因为 Method2 在从 Program 调用时被拦截,而不是从 InterceptedClass 中调用。
我可以理解,当从代理类中进行调用时,它将不再通过代理,而只是想检查这是否是预期的,如果是这样,那么看看是否有无论如何都可以拦截所有调用他们是从哪里来的?
谢谢
c# - C# 将 System.Data.Entity.DynamicProxies 克隆到实际(非代理)类?
我试图弄清楚如何将 System.Data.Entity.DynamicProxies 克隆或转换为它的实际类。例如:
MyApp.Entities 中的所有类都继承自 BaseEntity,所以我尝试在那里进行转换:
然后将 DynamicProxies 转换为真正的类:
这样做的原因是我想从此对象中删除所有实体框架跟踪等,并将其普通(POCO)属性存储在缓存中。而且我需要能够为所有 100 个左右的 Entity 类执行此操作,因此它必须是相当通用的 - 无需为每个属性手动说 object1.foo = object2.foo。
c# - 有没有办法创建一个支持接口的 DynamicObject?
我可以定义一个派生自 DynamicObject 并支持接口 (ICanDoManyThings) 的类,而不必在接口中实现每个方法吗?
我正在尝试创建一个动态代理对象,并希望此类上的方法调用由 MyProxyClass.TryInvokeMember 的实现来处理,这可能会也可能不会将它们传递给包装的对象。
这可能吗?
谢谢
java - Java中接口/抽象类的动态实现
构建接口和/或抽象类的动态实现的实际解决方案是什么?我基本上想要的是:
java - java.lang.reflect.InvocationHandler 的调用方法参数列表中的“代理”对象代表什么?
我对这种情况有点困惑:
我有一个实现标题中提到的 InvocationHandler 接口的类,类看起来像:
让我们在我的“主要”方法中说我有:
现在的问题是“调用”会引发如下错误:
...
在 rtti.SimpleProxy.invoke(MainClass.java:81)
在 rtti.$Proxy0.toString(未知来源)
在 java.lang.String.valueOf(String.java:2826)
在 java.io.PrintStream.println(PrintStream.java:771)
在 rtti.SimpleProxy.invoke(MainClass.java:81)
在 rtti.$Proxy0.toString(未知来源)
在 java.lang.String.valueOf(String.java:2826)
在 java.io.PrintStream.println(PrintStream.java:771)
...
因为这条线:
System.out.println(代理);
如果我评论这条线,一切都很好。
谁能解释我有什么问题?
注意在 Java 文档中,它提到了 InvocationHandler 的调用方法:
处理代理实例上的方法调用并返回结果。当在与其关联的代理实例上调用方法时,将在调用处理程序上调用此方法。
参数:proxy - 调用该方法的代理实例
...所以我不明白为什么会出错...
c# - Castle 项目 DynamicProxy 是否大量使用反射?
Castle 项目 DynamicProxy 是否大量使用反射......像不断地一样?
还是它会预先反射缓存数据?
entity-framework - 我应该使用实体框架 4.1 和 MVC3 启用或禁用动态代理吗?
有人可以提供一些建议或指出一些有助于做出这个决定的博客/文章吗?代理对我来说似乎很陌生,我对使用它们犹豫不决。我喜欢通过在我的模型中使用虚拟属性来控制延迟加载的能力,但这几乎是我能看到的所有好处。我的应用程序是一个简单的 MVC Web 应用程序,当实体经历更改状态时,我不需要将任何挂钩连接到上下文中。
无论如何,这是我现在非常有限的利弊清单,如果我对这些有任何误解,请告诉我。
优点
- 在“保存”或“更新”上,我可以无缝地使用“应用”更改
- 延迟加载配置非常简单。
缺点
- 以前从未为我的实体使用过代理,这是一种方法上的改变,对我自己和其他团队成员来说似乎很不舒服。
- 调试很麻烦。
- 如果我想序列化/反序列化,需要额外的代码
- 在“保存”或“更新”时,代理必须与从上下文中检索到的对象相同。
java - 在运行时增强 java 对象
我知道使用支持代理的库(javassist、JDK 动态代理等)可以增强类以在运行时实现接口。
我的问题是:是否可以增强实例化对象以在运行时实现接口(并同样提供适当的方法处理程序)。
c# - 寻找单文件 AOP 代理生成器
我正在为 WPF 开发一个自动分页集合。我在内部使用了优秀的库 LinFu.DynamicProxy。我想最小化依赖关系,但我没有找到任何实现 DynamicProxy 生成器的“一个文件”解决方案,所以我想问一下您是否知道这样的组件。
谢谢,
菲利斯
asp.net-mvc-3 - 将 POCO 中的当前值应用于 DynamicProxy 会导致复杂对象出错
我有一个使用 EF4 项目作为其域的 MVC3 项目。Domain 是一个模型优先项目,它使用 T4 来构建 POCO 对象。Domain 中有几个 ComplexTypes 在起作用,只要我使用 context.CreateObject() 返回的代理,一切都很好。
当调用 MVC3 操作时,模型绑定器传递一个非代理对象,其中包含要应用于域的更改。
我想使用“代理”原件,以便视图稍后可以访问导航属性,因此直接向上的 AttachTo 不会削减它。
我需要首先从上下文中获取“原始”代理对象,然后使用模型绑定器提供的 POCO 中包含的更改对其进行更新。
从我读过的内容和我的研究告诉我,我应该能够使用以下内容来完成此任务:
我的问题是这个错误:
- 非代理对象上的复杂对象和代理对象上的复杂对象不相同。
- 实体只有一个复杂对象,所以不能多次设置说,同一个 ComplexType 的两个属性。
- 复杂对象本身实际上并没有设置任何值,因此这两个可以为空的字段实际上仍然为空。
- 如果我确实使用了 AttachTo 方法,然后将对象状态设置为修改保存工作,但我以后不能使用该对象返回视图,因为导航属性为空。
有什么想法吗?我很感激帮助。