En C#, je pouvais créer assez facilement une représentation sous forme de chaîne d'un graphe d'objet avec des arbres d'expression.F # citations graphique de l'objet
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");
}
En F # J'ai regardé Citations pour tenter de faire la même chose, et ne peut pas comprendre tout à fait dehors. J'ai essayé de convertir la citation en Expression en utilisant les bibliothèques PowerPack, mais je n'ai pas eu de chance jusqu'à maintenant, et les informations sur Internet semblent assez rares sur ce sujet.
Si l'entrée est:
let result = getGraph myObject <@ myObject.MyProperty @>
la sortie doit être "myobject.MyProperty"
Dunno la réponse (les citations ne sont pas mon fort), mais je veux m'assurer que vous avez lu http://blogs.msdn.com/dsyme/archive/2009/10/23/a-quick-refresh-on- query-support-in-the-f-power-pack.aspx qui sont les meilleurs docs actuels sur le support Quotation-> Expression dans le PowerPack. – Brian