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

0 投票
1 回答
361 浏览

c# - DynamicObject - 基于参数值调用方法

我希望能够存储一个 Actions 字典并能够根据字典的键调用那些。如果未找到密钥,则不会调用任何操作。我有一个想法,即使用扩展 DynamicObject 的对象执行调用并在构造时获取操作字典,但是所有有关如何使用 DynamicObject 的示例都基于属性,而不是方法。我希望能够做这样的事情:

0 投票
1 回答
2505 浏览

c# - C# 将 DynamicObject 转换为任意类型

我正在编写一个 Javascript <-> C# 桥并遇到以下问题:

有一个类 JSObject:

让我们假设有一个简单的测试用例,比如

现在我想能够做到

obj.message应该执行一个TryGetMember()调用。实际上,jsObj 应该伪装成一个 TestClass 实例。请注意,对 testComplexObject 的调用只是一个示例,稍后我需要能够支持使用任意参数调用任意函数。

我尝试了各种方法来完成这项工作,但都没有奏效。所以我想知道实现这一目标的好方法。

我考虑过在运行时创建一个继承自TestClass 的类。这个动态类将包含生成的成员,这些成员重载了它们的基类挂件。这些方法中的每一个都将转发到 JSObject/JSEngineAPI 以执行实际工作。然后我可以将这个动态类的一个实例传递给 testComplexObject 方法。

然而,这听起来相当复杂,我很想知道是否有更简单/其他的方法来解决这个问题。

编辑#1:我想如果你去掉“DynamicObject”部分,这个问题有点像我如何在运行时为类型 T 创建代理?

编辑#2:我现在也研究了 RealProxy 和 IDynamicMetaObjectProvider,想知道这些是否有帮助。

谢谢你的时间,-马蒂亚斯

0 投票
3 回答
3040 浏览

c# - 获取动态对象中方法调用的通用类型

我开始在 .Net 中使用动态对象,但我不知道该怎么做。

我有一个继承自 DynamicObject 的类,并且我重写了 TryInvokeMember 方法。

例如

在该方法中,我想知道调用中泛型参数的类型(如果有的话)。

例如,如果我调用以下代码,我想在我的动态对象的覆盖方法中获取 System.Boolean 和 System.Int32 的值

目前,如果我在被覆盖的方法中放置一个断点,我可以获得被调用的方法的名称(“SomeMethod”和“SomeOtherMethod”,以及参数的值,但不是泛型类型)。

我怎样才能得到这些值?

谢谢!

0 投票
1 回答
1885 浏览

c# - DataGridView、System.Dynamic 命名空间上的 DynamicObject 数据绑定

我有一些继承 DynamicObject 类的对象集合,它们都适用于 BindingSource 和 BindingNavigator,但我没有在 DatagridView 上显示动态属性。

对象继承了DynamicObject,覆盖了TrySetMember、TryGetMethod和GetDynamicMemberNames,我觉得够用了。

它还为绑定更新实现了 INotifyPropertyChanged 接口。

我忘记了什么?或者有可能吗?

我现在拥有的是:

注意:_Ctl 是一个提供所有用户的对象,Users 类继承 DynamicObject 并具有动态定义的属性,如用户名、密码和名称,一切正常,但数据网格不显示动态属性。

0 投票
4 回答
143 浏览

.net - 是否有人创建了一个开源动态 .NET 类来在另一个类上公开私有函数/属性?

如果是这样,我非常想使用它。有人有任何指示吗?

我的目标是在我的测试解决方案中消除对 _accessor 项目的需求。我想如果我创建了一个动态类,应该可以记录应用了哪些函数,然后使用反射在另一个对象上重放这些函数。通过反射,我们可以调用私有函数。(我想要 C++ 的#define private public 的 C# 变体。)

我想我自己可以做到这一点,但是如果我可以重用一些代码,为什么要这样做。

0 投票
2 回答
678 浏览

c# - 重写 DynamicObject 的 TryInvokeMember() 时,如何选择正确的重载来调用?

在覆盖以下方法时,您将如何实现一种算法来选择正确的方法重载DynamicObject

0 投票
3 回答
8013 浏览

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

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

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

这可能吗?

谢谢

0 投票
1 回答
1011 浏览

c# - XML-RPC.NET 和 C# 动态类型

Cook Computing 博客有一篇文章讨论了如何使用 .NET 4 中的动态来创建动态 RPC 调用。(帖子:C# 动态类型上的成员调用的替代语法

该帖子显示了以下示例:

我不明白的部分是说明“实际上在这里调用 XML-RPC 端点”的评论。

有没有办法在调用方法中使用 XML-RPC.NET 库,还是需要进行 HttpWebRequest 调用?

谢谢

0 投票
1 回答
1441 浏览

c# - 确定 DynamicObject 成员访问的预期类型

是否可以确定动态成员访问期望的类型?我试过了

无论哪种方式,TryGetMember拦截GetMemberBinder.ReturnType都是对象。我还实现TryConvert了想知道它是否会被调用来进行转换,但它永远不会被命中。

是否还有其他一些我遗漏的覆盖可以让我确定调用者想要什么类型,以便我可以进行适当的转换?

0 投票
1 回答
1233 浏览

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