En C# podría crear una representación de cadena de un gráfico de objeto bastante fácilmente con árboles de expresión.F # quotations object graph
public static string GetGraph<TModel, T>(TModel model, Expression<Func<TModel, T>> action) where TModel : class
{
var method = action.Body as MethodCallExpression;
var body = method != null ? method.Object != null ? method.Object as MemberExpression : method.Arguments.Any() ? method.Arguments.First() as MemberExpression : null : action.Body as MemberExpression;
if (body != null)
{
string graph = GetObjectGraph(body, typeof(TModel))
return graph;
}
throw new Exception("Could not create object graph");
}
In F # He estado buscando en Citas para intentar hacer lo mismo, y no puedo entenderlo. Intenté convertir la cita en una Expresión utilizando las bibliotecas PowerPack, pero hasta ahora no he tenido suerte, y la información en Internet parece bastante escasa en este tema.
Si la entrada es:
let result = getGraph myObject <@ myObject.MyProperty @>
la salida debe ser "myObject.myProperty"
No sé la respuesta (las citas no son mi fuerte), pero quiero asegurarme de que haya leído http://blogs.msdn.com/dsyme/archive/2009/10/23/a-quick-refresh-on- query-support-in-the-f-power-pack.aspx, que son los mejores documentos actuales sobre el soporte Cita->> Expresión en el PowerPack. – Brian