C# İçindekiler ağaçlarıyla bir nesne grafiğinin dize olarak temsilini kolayca oluşturabilirim.F # alıntıları nesne grafiği
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 # Aynı şeyleri yapmaya çalışmak için Tekliflere bakıyordum ve tam olarak anlayamıyorum. PowerPack kütüphanelerini kullanarak teklifin bir İfadeye dönüştürülmesini denedim, ancak şimdiye kadar hiç şansım olmadı ve internetteki bilgiler bu konuda oldukça seyrek görünüyor. giriş
ise:
let result = getGraph myObject <@ myObject.MyProperty @>
çıktı "myObject.myProperty" olmalıdır
Yanıtın cevabı (alıntılar benim forte'm değil), ancak http://blogs.msdn.com/dsyme/archive/2009/10/23/a-quick-refresh-on- sayfasını okuduğunuzdan emin olmak istersiniz. PowerPack'deki Quotation-> Expression desteği hakkında en iyi güncel dokümanlar olan sorgu-destek-in-the-f-power-pack.aspx. – Brian