如何在asp.net中使用动态对象?

时间:2010-07-15 20:12:54

标签: dynamic ironpython asp.net-4.0 keyword

我有一个在IronPython中构建的动态对象,我想根据嵌套在动态对象中的对象类型动态地在我的asp.net页面上构建控件:

dynamic variousComplexObjects = IronPythonApp.GetControls();
repeater.DataSource = variousComplexObjects;
repeater.DataBind();

有人可以给我一个快速举例说明下一步该做什么吗?我确信有一个教程在那里做类似的事情,但我在谷歌搜索时遇到了一些麻烦。请随意向我推荐正确的关键字,或指出我在asp.net应用程序中正确使用DLR数据的方向。

谢谢!

3 个答案:

答案 0 :(得分:2)

假设您使用.net 4,您可以在数据绑定事件中使用dynamic。

repeater.ItemDataBound += OnItemDataBound;

protected void OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
  dynamic dynObj = (dynamic)e.DataItem;
  string text = dynObj.Text; // Etc.
}

我可能有一个类型属性或类似的东西来检查 - 否则你会遇到尝试使用GetType(),我不确定是否适用于IronPython。

答案 1 :(得分:0)

这是一个名为“Databind object with 'dynamic' properties”的主题。它涉及在类型上创建客户获取和设置方法。

它不完全符合你的C#dynamic的情景以及从DLR获取数据,但它可能有所帮助。

这是另一个名为“Can I databind to a collection of Dynamic Class”的主题。创作者使用Reflection.Emit创建了一个动态类。

如果这些解决方案适合您的情况,请发表评论。我也对这个解决方案感兴趣,但目前还没有通过测试的费用。

答案 2 :(得分:0)

谢谢..我猜没有人在传统的asp.net网络表单和动态对象中编码。可能有办法做到这一点..但我只是转而使用MVC。