问题标签 [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 继承的对象使用 GetType().GetProperty()?
我正在尝试使用反射从动态类中检索字段或属性,但是当我使用 Getfield 或 GetProperty 调用动态对象时,它永远找不到该字段并且没有输入任何动态 object.Try* 方法。
不知道为什么这不适用于.net4。
请参阅下面的 testdyn 动态测试类。
我这样称呼它:
得到这些结果:
期待看到
我究竟做错了什么?
注意:如果我调用'td.fiddle',它确实有效......但你不知道创建类的名称但你知道它可以访问它,这似乎很奇怪?
从这篇文章看来,动态对象可能不支持反射,因为它实现了 idynamicmetaobjectprovider
问题是使用反射的外部应用程序正在使用此代码。
如果你有想法,请告诉我。
代码如下。
c# - 如何根据预期返回值以不同方式处理动态类
我必须重写哪种方法DynamicObject
才能根据使用实例的上下文获得不同的行为(在动态类中)?
这是我要完成的一个示例:
silverlight - Silverlight MVVM 将 DataGrid 绑定到 DynamicObject,重新评估动态成员
我有一个 ViewModel,它公开了一个 DataSource,它是 DynamicObjects 的 ObservableCollection。绑定后,DataGrid 对第一个 DataSource 项调用 GetDynamicMemberNames() 以获取它需要自动生成和绑定到的列。到目前为止,一切都很好。
但是,当我将 DataSource 更改为包含具有完全不同属性的项目并为 DataSource 引发 PropertyChanged 时,Grid 不会重新评估动态成员!
我的问题是,如何让 DataGrid 重新评估 DynamicObject 的成员?如何在初始绑定后强制它调用 GetDynamicMemberNames?
一些代码:
如果我在 ViewModel 构造函数中填充 SourceModels 集合,这将起作用。
我正在寻找的是在更改 SourceModels 集合后以调用 GetDynamicMemberNames() 的方式重新绑定网格的某种方法。最好以MVVM方式...
有人可以帮帮我吗?
c++ - 在向量中创建动态对象
所以我想有vector<OtherClassName> theVector
一个成员BaseClass
我想知道在很多方面我可以得到内存泄漏......
这样做会导致内存泄漏吗?
我是 C++ 的初学者,从互联网上学习。
c# - “'object'不包含'property'的定义,并且找不到接受'object'类型的第一个参数的扩展方法'property'”
我创建了一个简单的类,它是 DynamicObject 的后代:
我通过执行以下操作来使用后代对象:
当我尝试使用带有点符号的 _CurrentRow 时:
我收到以下错误消息:
“‘ object ’不包含‘ property ’的定义,并且找不到接受‘object’类型的第一个参数的扩展方法‘ property ’”
我可以使用 VB 解决即时窗口中的属性,但没有任何问题:
c# - C#中使用动态类型、动态对象和expando对象的模式/问题
在对 C# 中的 Dynamic Objects 和 Expando Objects 进行了一些研究之后,我最近意识到了 dynamic 关键字
我可以理解它非常酷,但是除了 ASP.NET MVC 中的 ViewBag 之外,我正在努力寻找要使用的应用程序。
所以我正在寻找任何可以使用 Dynamic 和 Expando 对象的设计模式或可以使用动态对象优雅地解决的问题示例......
unit-testing - 动态参数的 RhinoMocks 期望
无论如何要模拟采用动态参数的方法吗?
我想设定这样的期望:
我收到错误:表达式树可能不包含动态表达式。我当然可以做类似的事情:
但我觉得这在我的测试中留下了一个空白。是否有任何其他替代方法可以模拟具有接受动态参数的方法的依赖项?
javascript - 在 jQuery 中使用动态对象名称重新格式化 JSON
我有一组简单的 JSON 需要重新格式化,因为并非总是输出所有键值对。
输出方式的问题取决于数据是否可用的天气,按数字访问对象可能会产生意想不到的功能。第二个问题是必须通过javascript操作,不能在服务器端操作。
我希望重新格式化 JSON,以便每个类别都是一个对象(目前有三个,但可能多达五个)在对象内汇总数据。例如:
我将如何解决这个问题?简单地循环遍历并命名对象并没有让我走到任何地方。
.net - 有没有办法将动态或匿名对象转换为强类型声明对象?
如果我有一个动态对象或匿名对象,其结构与强类型对象的结构完全匹配,是否有.NET 方法可以从动态对象构建类型对象?
我知道我可以使用 LINQdynamicList.Select(dynamic => new Typed { .... }
类型的东西,或者我可以使用 Automapper,但我想知道是否没有专门为此构建的东西?
c# - IronPython 调用 TryGetMember 而不是 TryInvokeMember
我正在尝试将动态对象移交给 Ironpython,但似乎 Ironpython 没有调用 TryInvokeMember。相反,它调用 TryGetMember 并给出无法调用结果的错误。
我已经尝试过 IronPython 2.7 和 2.6.10920
示例代码:
动态对象:
调用 Mathode
这将调用 TryGetMember 方法,然后引发 Microsoft.Scripting.ArgumentTypeException "str is not callable"
当你编写类似'test'(1)的代码时会抛出这个
因此,Python 似乎没有意识到这是一个函数调用,而只是调用了一个属性。
但是当我尝试从 C# 调用它时
这将起作用:
有没有人建议如何解决这个问题?
解决方案:(编辑:calledMethodeName 必须是一个列表,否则嵌套方法不起作用)
所以感谢杰夫。
当我这样设计动态时:
一切正常。
线索是将对象本身作为成员返回,而不是对象是可调用的,python 调用 TryInvoke(不是 TryInvokeMember)
但是调用 TryInvoke 是因为在返回对象之后,对象本身被调用。所以 InvokeBinder 不知道被调用方法的名称。所以我将它存储到一个变量中。