问题标签 [dynamicobject]
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# - DynamicObject - 基于参数值调用方法
我希望能够存储一个 Actions 字典并能够根据字典的键调用那些。如果未找到密钥,则不会调用任何操作。我有一个想法,即使用扩展 DynamicObject 的对象执行调用并在构造时获取操作字典,但是所有有关如何使用 DynamicObject 的示例都基于属性,而不是方法。我希望能够做这样的事情:
c# - C# 将 DynamicObject 转换为任意类型
我正在编写一个 Javascript <-> C# 桥并遇到以下问题:
有一个类 JSObject:
让我们假设有一个简单的测试用例,比如
现在我想能够做到
做obj.message
应该执行一个TryGetMember()
调用。实际上,jsObj 应该伪装成一个 TestClass 实例。请注意,对 testComplexObject 的调用只是一个示例,稍后我需要能够支持使用任意参数调用任意函数。
我尝试了各种方法来完成这项工作,但都没有奏效。所以我想知道实现这一目标的好方法。
我考虑过在运行时创建一个继承自TestClass 的类。这个动态类将包含生成的成员,这些成员重载了它们的基类挂件。这些方法中的每一个都将转发到 JSObject/JSEngineAPI 以执行实际工作。然后我可以将这个动态类的一个实例传递给 testComplexObject 方法。
然而,这听起来相当复杂,我很想知道是否有更简单/其他的方法来解决这个问题。
编辑#1:我想如果你去掉“DynamicObject”部分,这个问题有点像我如何在运行时为类型 T 创建代理?
编辑#2:我现在也研究了 RealProxy 和 IDynamicMetaObjectProvider,想知道这些是否有帮助。
谢谢你的时间,-马蒂亚斯
c# - 获取动态对象中方法调用的通用类型
我开始在 .Net 中使用动态对象,但我不知道该怎么做。
我有一个继承自 DynamicObject 的类,并且我重写了 TryInvokeMember 方法。
例如
在该方法中,我想知道调用中泛型参数的类型(如果有的话)。
例如,如果我调用以下代码,我想在我的动态对象的覆盖方法中获取 System.Boolean 和 System.Int32 的值
目前,如果我在被覆盖的方法中放置一个断点,我可以获得被调用的方法的名称(“SomeMethod”和“SomeOtherMethod”,以及参数的值,但不是泛型类型)。
我怎样才能得到这些值?
谢谢!
c# - DataGridView、System.Dynamic 命名空间上的 DynamicObject 数据绑定
我有一些继承 DynamicObject 类的对象集合,它们都适用于 BindingSource 和 BindingNavigator,但我没有在 DatagridView 上显示动态属性。
对象继承了DynamicObject,覆盖了TrySetMember、TryGetMethod和GetDynamicMemberNames,我觉得够用了。
它还为绑定更新实现了 INotifyPropertyChanged 接口。
我忘记了什么?或者有可能吗?
我现在拥有的是:
注意:_Ctl 是一个提供所有用户的对象,Users 类继承 DynamicObject 并具有动态定义的属性,如用户名、密码和名称,一切正常,但数据网格不显示动态属性。
.net - 是否有人创建了一个开源动态 .NET 类来在另一个类上公开私有函数/属性?
如果是这样,我非常想使用它。有人有任何指示吗?
我的目标是在我的测试解决方案中消除对 _accessor 项目的需求。我想如果我创建了一个动态类,应该可以记录应用了哪些函数,然后使用反射在另一个对象上重放这些函数。通过反射,我们可以调用私有函数。(我想要 C++ 的#define private public 的 C# 变体。)
我想我自己可以做到这一点,但是如果我可以重用一些代码,为什么要这样做。
c# - 重写 DynamicObject 的 TryInvokeMember() 时,如何选择正确的重载来调用?
在覆盖以下方法时,您将如何实现一种算法来选择正确的方法重载DynamicObject
?
c# - 有没有办法创建一个支持接口的 DynamicObject?
我可以定义一个派生自 DynamicObject 并支持接口 (ICanDoManyThings) 的类,而不必在接口中实现每个方法吗?
我正在尝试创建一个动态代理对象,并希望此类上的方法调用由 MyProxyClass.TryInvokeMember 的实现来处理,这可能会也可能不会将它们传递给包装的对象。
这可能吗?
谢谢
c# - XML-RPC.NET 和 C# 动态类型
Cook Computing 博客有一篇文章讨论了如何使用 .NET 4 中的动态来创建动态 RPC 调用。(帖子:C# 动态类型上的成员调用的替代语法)
该帖子显示了以下示例:
我不明白的部分是说明“实际上在这里调用 XML-RPC 端点”的评论。
有没有办法在调用方法中使用 XML-RPC.NET 库,还是需要进行 HttpWebRequest 调用?
谢谢
c# - 确定 DynamicObject 成员访问的预期类型
是否可以确定动态成员访问期望的类型?我试过了
无论哪种方式,TryGetMember
拦截GetMemberBinder.ReturnType
都是对象。我还实现TryConvert
了想知道它是否会被调用来进行转换,但它永远不会被命中。
是否还有其他一些我遗漏的覆盖可以让我确定调用者想要什么类型,以便我可以进行适当的转换?
office-interop - 通过动态对象进行 Office 互操作的枚举值
我在我的 Silverlight-Ouf-Of-Browser 应用程序中使用 COM 互操作来实现 Word 自动化。这意味着我不能直接引用 COM,而是依赖动态。
现在我想调用以下方法:
Range.Collapse(WdCollapseDirection 方向)。
如何找出映射到各个枚举值的值(例如 wdCollapseEnd 的值为 1 或 2)?
亲切的问候!
PS:有关方法签名的更多信息,请参阅http://msdn.microsoft.com/de-de/library/microsoft.office.interop.word.range.collapse