问题标签 [proxy-classes]

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 回答
493 浏览

actionscript-3 - 在 ActionScript 中包装 Vararg 方法

我有一个可变参数方法,我想充当另一个可变参数方法的代理,但我不知道该怎么做。这是基本代码:

我正在从 Java 移植代码,其中类型系统知道参数实际上应该是字符串,而不是数组,因此它可以通过直接传递参数来确定调用 b(),并且一切都按照你的方式工作预计。

但是在 ActionScript 中,当通过代理方法调用时,参数数组会被包装到另一个数组中。

因此,当直接调用 b() 时,数组只有一层深。但是当通过 a() 调用 b() 时,数组有两层深。

有谁知道解决这个问题的技巧?

(注意:在我的真实代码中,a() 和 b() 实际上是在不同的类中,我真的不想触及 b() 的实现。我可以将 a() 重写为我心中的内容,但 b() 不应该改变。)

0 投票
1 回答
6330 浏览

java - 使用 jmx 的动态代理会导致线程泄漏?

我在 Java 中有一个问题,我用 JMX 接口设置了一个动态代理,将它传递给另一个组件,然后调用代理对象。当我这样做时,应用程序会为每个调用泄漏两个线程,这些线程似乎永远不会超时,并且会不断累积,直到应用程序内存不足。

线程成对出现,请参阅底部的堆栈跟踪。

我尝试在 JMX 中使用一些稍微模糊的系统属性来关闭超时,但这并没有什么不同。关键操作似乎是动态代理调用。通过代理调用的对象实现了 Serializable ,所以这应该不是问题。

当我手动创建一个带有 MBean 路径和对象接口字符串的 Bean 并从中调用方法时,问题就消失了。

当涉及到动态代理时,我主要在这里寻找经典的陷阱,因为我对它们没有太多经验。

这就是代理实例的创建方式

以及 MyInvocationHandler 的实现:

}

两个线程的线程堆栈跟踪(总是成对出现):

0 投票
1 回答
283 浏览

c# - 如何获取休眠 DynamicProxy 的代理类型的全名?

我正在使用 netdatacontractserializer 和 SerializationBinder 为客户端的休眠代理创建自己的运行时类型。

除了我被迫假设域模型中的每个名称只有一种类型之外,这一切都有效。即我被迫忽略命名空间。原因是 SerializationBinder 只允许我访问“MyObjectProxyb04bae2d04d34e8a98b1d93bf24428cc”和“DynamicProxyGenAssembly2,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”来派生父类型。

如您所见,没有数据指向父类型的命名空间。

我已经查看了更改生成代理的名称(以包含名称空间前缀),但这似乎是硬编码的。

0 投票
9 回答
48471 浏览

java - 在非单例 bean 上的 Spring 代理上修复 BeanNotOfRequiredTypeException?

我在从应用程序上下文中提取 Spring bean 时遇到问题。

当我尝试时;

我明白了;

如果在 getBean() 调用中没有指定类,我会得到一个 ClassCastException(您可以在下面详细看到)。

InnerThread bean 被初始化为非单例,因为我需要多个实例。InnerThread 类还扩展了 Thread。有趣的是,这个错误出现在 OuterThread 中,它的设置方式与 InnerThread 完全相同。

我试图在下面包含所有相关的代码清单/堆栈跟踪。有更多春季经验的人可以告诉我这里发生了什么吗?


代码/配置列表

OuterThread.java 片段:

SpringContextFactory.java:

应用上下文.xml:

堆栈跟踪


没有回答我的问题的类似问题

0 投票
1 回答
1740 浏览

c# - WCF 中的哈希集

我在我的 WCF 界面中使用 HashSet

当我创建一个服务引用时,HashSet 变成了一个 int[]。

我添加了一个 ServiceKnownType :

并尝试了一些配置,但无法完全改变。

如果我更改它硬编码一切正常,但每次更新我的参考时更改它真的很烦人..

我可能做错了什么,有什么指示或想法吗?

0 投票
2 回答
3807 浏览

wcf - Wcf 服务代理名称/命名空间命名策略

任何人都有适合服务代理类的命名策略?

例如,如果我在两个项目中获得三个 Web 服务,如下所示:

什么将用作 和 的服务参考名称和AService命名BService空间CService

一般来说,我希望代理名称/命名空间中的某些内容表明所使用的东西不是具体的类,而是代表一个代理 - 两者都不会与具体类的使用冲突[并强制使用别名或命名空间-qualified class names],因此我们并没有隐藏发生跃点的事实(我猜 Wcf 服务代理生成器的默认后缀 Client 涵盖了这一点)。同样重要的是,它处理编写包装器/垫片服务的情况,该服务将调用 [子] 集转发到另一个引用的服务。

我使用过各种样式(添加WsServiceProxy或后缀?前缀为) Ref,但从未对它们完全满意。ProxyServiceName.

什么对你有用?任何风格指南都提到了命名风格?

编辑:虽然 Cheeso 的回答涵盖了我的大部分问题,但我仍然有兴趣听到以下方面的答案:

  1. 如上例所示的命名空间代理类的策略
  2. 提及代理命名策略的样式指南
0 投票
1 回答
145 浏览

seam - 接缝代理类如何

seam 实际上代理每个类进行拦截。代理类和实现接口的代理类之间有区别吗?fe 就像在 spring 中,代理实例实现了类中指定的所有接口。

有人在 java.lang.reflect.Proxy 与 cglib 或 javassist 之间有任何性能经验吗?代理上的实例化不是比字节码操作快得多吗?

提前致谢

0 投票
2 回答
4598 浏览

c# - wsdl.exe 的替代方法,用于从 wsdl 创建代理类

wsdl.exe似乎是 .Net 从 wsdl 生成代理类的默认工具。它存在已知问题(请参见此处此处,还有一些 SO 问题)。是否有替代代理类生成器?

我没有做 WCF,所以svcutil.exe等工具可能无法使用。

0 投票
3 回答
2044 浏览

c# - 如何将属性添加到生成的类的属性(Web 服务代理)?

我有一个从 Web 服务获取数据的 Silverlight 3 应用程序。当我添加对我的 Web 服务的引用时,Web 服务使用的所有类都在代理类中定义。到目前为止,一切都很好……现在,我想使用 Silverlight 3 中提供的 DataForm。要使用该组件,我必须将元数据添加到我的类中(例如,参见下面的代码)。

我的问题是,考虑到类 Movie 是在 .NET 生成的代理类中定义的,如何在不修改生成的类的情况下将属性/元数据添加到 Movie 类的属性中?

谢谢

0 投票
3 回答
507 浏览

.net - 如何在 winforms 客户端和 Web 服务之间使用公共类?

我继承了一个大型管理员 winforms 应用程序,该应用程序共享一个“通用”类库,用于与 Web 服务保存数据。我遇到的问题是,如果我从 Web 服务调用返回一个类的填充实例,那么它作为不同的类型出现在客户端上,我不能使用其他“通用”项目逻辑来操作。

这是因为尽管 Web 服务将返回一个 Common.Widget 类型的对象,但它会将该对象包装起来以便通过网络传输它。完成此操作后,我无法将对象转换回“通用”类型,因为 .Net 会引发 InvalidCastException。

我已经使用 WCF 和 DataMember 属性完成了此操作,但我现在无法将此项目升级到 WCF,因为它非常大并且测试服务器是 Win2K(Win2K 没有 .Net 3+)。

那么有没有办法让我轻松地做到这一点,或者我必须将从 Web 服务获得的所有数据转换回公共库中的原始类型?

提前致谢

瑞安