问题标签 [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.

0 投票
1 回答
7918 浏览

c# - 从类中调用时,Castle Dynamic Proxy 不拦截方法调用

在使用 Castle 的动态代理时,我遇到了一些(我认为是)奇怪的行为。

使用以下代码:

我期待得到输出:

  • 拦截调用:Method1
  • 调用方法 1
  • 拦截调用:Method2
  • 调用方法 2
  • 拦截调用:Method2
  • 调用方法 2

然而我得到的是:

  • 拦截调用:Method1
  • 调用方法 1
  • 调用方法 2
  • 拦截调用:Method2
  • 调用方法 2

据我所知,如果调用来自类本身之外,动态代理只能代理方法调用,因为 Method2 在从 Program 调用时被拦截,而不是从 InterceptedClass 中调用。

我可以理解,当从代理类中进行调用时,它将不再通过代理,而只是想检查这是否是预期的,如果是这样,那么看看是否有无论如何都可以拦截所有调用他们是从哪里来的?

谢谢

0 投票
1 回答
10295 浏览

c# - C# 将 System.Data.Entity.DynamicProxies 克隆到实际(非代理)类?

可能重复:
EF4 将 DynamicProxies 转换为基础对象

我试图弄清楚如何将 System.Data.Entity.DynamicProxies 克隆或转换为它的实际类。例如:

MyApp.Entities 中的所有类都继承自 BaseEntity,所以我尝试在那里进行转换:

然后将 DynamicProxies 转换为真正的类:

这样做的原因是我想从此对象中删除所有实体框架跟踪等,并将其普通(POCO)属性存储在缓存中。而且我需要能够为所有 100 个左右的 Entity 类执行此操作,因此它必须是相当通用的 - 无需为每个属性手动说 object1.foo = object2.foo。

0 投票
3 回答
8013 浏览

c# - 有没有办法创建一个支持接口的 DynamicObject?

我可以定义一个派生自 DynamicObject 并支持接口 (ICanDoManyThings) 的类,而不必在接口中实现每个方法吗?

我正在尝试创建一个动态代理对象,并希望此类上的方法调用由 MyProxyClass.TryInvokeMember 的实现来处理,这可能会也可能不会将它们传递给包装的对象。

这可能吗?

谢谢

0 投票
1 回答
14977 浏览

java - Java中接口/抽象类的动态实现

构建接口和/或抽象类的动态实现的实际解决方案是什么?我基本上想要的是:

0 投票
1 回答
1288 浏览

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 - 调用该方法的代理实例

...所以我不明白为什么会出错...

0 投票
1 回答
196 浏览

c# - Castle 项目 DynamicProxy 是否大量使用反射?

Castle 项目 DynamicProxy 是否大量使用反射......像不断地一样?

还是它会预先反射缓存数据?

0 投票
5 回答
49021 浏览

entity-framework - 我应该使用实体框架 4.1 和 MVC3 启用或禁用动态代理吗?

有人可以提供一些建议或指出一些有助于做出这个决定的博客/文章吗?代理对我来说似乎很陌生,我对使用它们犹豫不决。我喜欢通过在我的模型中使用虚拟属性来控制延迟加载的能力,但这几乎是我能看到的所有好处。我的应用程序是一个简单的 MVC Web 应用程序,当实体经历更改状态时,我不需要将任何挂钩连接到上下文中。

无论如何,这是我现在非常有限的利弊清单,如果我对这些有任何误解,请告诉我。

优点

  • 在“保存”或“更新”上,我可以无缝地使用“应用”更改
  • 延迟加载配置非常简单。

缺点

  • 以前从未为我的实体使用过代理,这是一种方法上的改变,对我自己和其他团队成员来说似乎很不舒服。
  • 调试很麻烦。
  • 如果我想序列化/反序列化,需要额外的代码
  • 在“保存”或“更新”时,代理必须与从上下文中检索到的对象相同。
0 投票
1 回答
362 浏览

java - 在运行时增强 java 对象

我知道使用支持代理的库(javassist、JDK 动态代理等)可以增强以在运行时实现接口。

我的问题是:是否可以增强实例化对象以在运行时实现接口(并同样提供适当的方法处理程序)。

0 投票
1 回答
176 浏览

c# - 寻找单文件 AOP 代理生成器

我正在为 WPF 开发一个自动分页集合。我在内部使用了优秀的库 LinFu.DynamicProxy。我想最小化依赖关系,但我没有找到任何实现 DynamicProxy 生成器的“一个文件”解决方案,所以我想问一下您是否知道这样的组件。

谢谢,

菲利斯

0 投票
1 回答
766 浏览

asp.net-mvc-3 - 将 POCO 中的当前值应用于 DynamicProxy 会导致复杂对象出错

我有一个使用 EF4 项目作为其域的 MVC3 项目。Domain 是一个模型优先项目,它使用 T4 来构建 POCO 对象。Domain 中有几个 ComplexTypes 在起作用,只要我使用 context.CreateObject() 返回的代理,一切都很好。

当调用 MVC3 操作时,模型绑定器传递一个非代理对象,其中包含要应用于域的更改。

我想使用“代理”原件,以便视图稍后可以访问导航属性,因此直接向上的 AttachTo 不会削减它。

我需要首先从上下文中获取“原始”代理对象,然后使用模型绑定器提供的 POCO 中包含的更改对其进行更新。

从我读过的内容和我的研究告诉我,我应该能够使用以下内容来完成此任务:

我的问题是这个错误:

  • 非代理对象上的复杂对象和代理对象上的复杂对象不相同。
  • 实体只有一个复杂对象,所以不能多次设置说,同一个 ComplexType 的两个属性。
  • 复杂对象本身实际上并没有设置任何值,因此这两个可以为空的字段实际上仍然为空。
  • 如果我确实使用了 AttachTo 方法,然后将对象状态设置为修改保存工作,但我以后不能使用该对象返回视图,因为导航属性为空。

有什么想法吗?我很感激帮助。