有没有办法在.net中使用反射来使用类似的路径获取属性的值...
type t {
id : int
name : string
}
type s {
id : int
st : t
{
let a = {id = 1; {id = 2; name = "foo"}}
a.getType().getProperty("st.name")
Run Code Online (Sandbox Code Playgroud)
抱歉F#.这显然不起作用,但它说明了我正在尝试做的事情.我可以为此编写一个递归算法,但是有没有人知道API中的一个机制来完成这个?
您可以使用 DataBinder.Eval 动态计算路径表达式(尽管这意味着添加对 System.Web 的依赖项):
http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx
C# 示例:
using System;
using System.Web.UI;
namespace DataBinderEval
{
internal class Program
{
private static void Main()
{
object target = new s { id = 1, st = new t { id = 2, name = "foo" } };
string expression = "st.name";
object result = DataBinder.Eval(target, expression);
Console.WriteLine(result);
}
private class t
{
public int id { get; set; }
public string name { get; set; }
}
private class s
{
public int id { get; set; }
public t st { get; set; }
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
303 次 |
| 最近记录: |