В C# Я мог бы создать строковое представление графа объектов довольно легко с помощью деревьев выражений.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");
}
В F # Я рассматривал Котировки, чтобы попытаться сделать то же самое, и не могу понять это. Я попытался преобразовать цитату в выражение с помощью библиотек PowerPack, но до сих пор не повезло, и информация в Интернете кажется довольно скудной по этой теме.
Если вход:
let result = getGraph myObject <@ myObject.MyProperty @>
выход должен быть "myObject.myProperty"
Dunno ответ (цитаты не являются моей сильной стороной), но вы хотите, чтобы вы прочитали http://blogs.msdn.com/dsyme/archive/2009/10/23/a-quick-refresh-on- query-support-in-f-power-pack.aspx, которые являются лучшими текущими документами о поддержке Quotation-> Expression в PowerPack. – Brian