问题标签 [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.
actionscript-3 - 在 ActionScript 中包装 Vararg 方法
我有一个可变参数方法,我想充当另一个可变参数方法的代理,但我不知道该怎么做。这是基本代码:
我正在从 Java 移植代码,其中类型系统知道参数实际上应该是字符串,而不是数组,因此它可以通过直接传递参数来确定调用 b(),并且一切都按照你的方式工作预计。
但是在 ActionScript 中,当通过代理方法调用时,参数数组会被包装到另一个数组中。
因此,当直接调用 b() 时,数组只有一层深。但是当通过 a() 调用 b() 时,数组有两层深。
有谁知道解决这个问题的技巧?
(注意:在我的真实代码中,a() 和 b() 实际上是在不同的类中,我真的不想触及 b() 的实现。我可以将 a() 重写为我心中的内容,但 b() 不应该改变。)
java - 使用 jmx 的动态代理会导致线程泄漏?
我在 Java 中有一个问题,我用 JMX 接口设置了一个动态代理,将它传递给另一个组件,然后调用代理对象。当我这样做时,应用程序会为每个调用泄漏两个线程,这些线程似乎永远不会超时,并且会不断累积,直到应用程序内存不足。
线程成对出现,请参阅底部的堆栈跟踪。
我尝试在 JMX 中使用一些稍微模糊的系统属性来关闭超时,但这并没有什么不同。关键操作似乎是动态代理调用。通过代理调用的对象实现了 Serializable ,所以这应该不是问题。
当我手动创建一个带有 MBean 路径和对象接口字符串的 Bean 并从中调用方法时,问题就消失了。
当涉及到动态代理时,我主要在这里寻找经典的陷阱,因为我对它们没有太多经验。
这就是代理实例的创建方式
以及 MyInvocationHandler 的实现:
}
两个线程的线程堆栈跟踪(总是成对出现):
c# - 如何获取休眠 DynamicProxy 的代理类型的全名?
我正在使用 netdatacontractserializer 和 SerializationBinder 为客户端的休眠代理创建自己的运行时类型。
除了我被迫假设域模型中的每个名称只有一种类型之外,这一切都有效。即我被迫忽略命名空间。原因是 SerializationBinder 只允许我访问“MyObjectProxyb04bae2d04d34e8a98b1d93bf24428cc”和“DynamicProxyGenAssembly2,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”来派生父类型。
如您所见,没有数据指向父类型的命名空间。
我已经查看了更改生成代理的名称(以包含名称空间前缀),但这似乎是硬编码的。
java - 在非单例 bean 上的 Spring 代理上修复 BeanNotOfRequiredTypeException?
我在从应用程序上下文中提取 Spring bean 时遇到问题。
当我尝试时;
我明白了;
如果在 getBean() 调用中没有指定类,我会得到一个 ClassCastException(您可以在下面详细看到)。
InnerThread bean 被初始化为非单例,因为我需要多个实例。InnerThread 类还扩展了 Thread。有趣的是,这个错误出现在 OuterThread 中,它的设置方式与 InnerThread 完全相同。
我试图在下面包含所有相关的代码清单/堆栈跟踪。有更多春季经验的人可以告诉我这里发生了什么吗?
代码/配置列表
OuterThread.java 片段:
SpringContextFactory.java:
应用上下文.xml:
堆栈跟踪
没有回答我的问题的类似问题
c# - WCF 中的哈希集
我在我的 WCF 界面中使用 HashSet
当我创建一个服务引用时,HashSet 变成了一个 int[]。
我添加了一个 ServiceKnownType :
并尝试了一些配置,但无法完全改变。
如果我更改它硬编码一切正常,但每次更新我的参考时更改它真的很烦人..
我可能做错了什么,有什么指示或想法吗?
wcf - Wcf 服务代理名称/命名空间命名策略
任何人都有适合服务代理类的命名策略?
例如,如果我在两个项目中获得三个 Web 服务,如下所示:
什么将用作 和 的服务参考名称和AService
命名BService
空间CService
?
一般来说,我希望代理名称/命名空间中的某些内容表明所使用的东西不是具体的类,而是代表一个代理 - 两者都不会与具体类的使用冲突[并强制使用别名或命名空间-qualified class names],因此我们并没有隐藏发生跃点的事实(我猜 Wcf 服务代理生成器的默认后缀 Client 涵盖了这一点)。同样重要的是,它处理编写包装器/垫片服务的情况,该服务将调用 [子] 集转发到另一个引用的服务。
我使用过各种样式(添加Ws
、ServiceProxy
或后缀?前缀为) Ref
,但从未对它们完全满意。Proxy
ServiceName.
什么对你有用?任何风格指南都提到了命名风格?
编辑:虽然 Cheeso 的回答涵盖了我的大部分问题,但我仍然有兴趣听到以下方面的答案:
- 如上例所示的命名空间代理类的策略
- 提及代理命名策略的样式指南
seam - 接缝代理类如何
seam 实际上代理每个类进行拦截。代理类和实现接口的代理类之间有区别吗?fe 就像在 spring 中,代理实例实现了类中指定的所有接口。
有人在 java.lang.reflect.Proxy 与 cglib 或 javassist 之间有任何性能经验吗?代理上的实例化不是比字节码操作快得多吗?
提前致谢
c# - 如何将属性添加到生成的类的属性(Web 服务代理)?
我有一个从 Web 服务获取数据的 Silverlight 3 应用程序。当我添加对我的 Web 服务的引用时,Web 服务使用的所有类都在代理类中定义。到目前为止,一切都很好……现在,我想使用 Silverlight 3 中提供的 DataForm。要使用该组件,我必须将元数据添加到我的类中(例如,参见下面的代码)。
我的问题是,考虑到类 Movie 是在 .NET 生成的代理类中定义的,如何在不修改生成的类的情况下将属性/元数据添加到 Movie 类的属性中?
谢谢
.net - 如何在 winforms 客户端和 Web 服务之间使用公共类?
我继承了一个大型管理员 winforms 应用程序,该应用程序共享一个“通用”类库,用于与 Web 服务保存数据。我遇到的问题是,如果我从 Web 服务调用返回一个类的填充实例,那么它作为不同的类型出现在客户端上,我不能使用其他“通用”项目逻辑来操作。
这是因为尽管 Web 服务将返回一个 Common.Widget 类型的对象,但它会将该对象包装起来以便通过网络传输它。完成此操作后,我无法将对象转换回“通用”类型,因为 .Net 会引发 InvalidCastException。
我已经使用 WCF 和 DataMember 属性完成了此操作,但我现在无法将此项目升级到 WCF,因为它非常大并且测试服务器是 Win2K(Win2K 没有 .Net 3+)。
那么有没有办法让我轻松地做到这一点,或者我必须将从 Web 服务获得的所有数据转换回公共库中的原始类型?
提前致谢
瑞安