ReactiveUI có phương pháp với signitures nhưLàm thế nào để vượt qua LINQ Expressions từ F # C# mã
public static ReactiveUI.ObservableAsPropertyHelper<TRet>
ObservableToProperty<TObj, TRet>(
this TObj This,
System.IObservable<TRet> observable,
System.Linq.Expressions.Expression<System.Func<TObj, TRet>> property,
TRet initialValue = null,
System.Reactive.Concurrency.IScheduler scheduler = null
)
Trong F # Làm thế nào tôi sẽ xây dựng một đối tượng như
System.Linq.Expressions.Expression<System.Func<TObj, TRet>> property,
Trong C# tôi sẽ làm một cái gì đó giống như
this.ObservableAsPropertyHelper(
observable,
me => me.MyProperty
)
EDIT
Tôi đã thử
m.ObservableToProperty(this, value, fun me -> me.Property)
và
m.ObservableToProperty(this,
value,
new Linq.Expression.Expression(fun me -> me.Property)
nhưng không phải làm việc
Cố gắng đó nhưng tôi nhận được một kết quả của loại "LinqExpression" thay vì "LinqExpression > " –
bradgonesurfing
@bradgonesurfing http://msdn.microsoft.com/en-us/library/bb335710.aspx, cụ thể là" Sử dụng phương thức Lambda (Expression, IEnumerable ) hoặc Lambda (Expression, ParameterExpression []) để tạo một đối tượng Biểu thức .'. –
Dường như ['QuotationToLambdaExpression'] (http://msdn.microsoft.com/en-us/library/hh324072.aspx) là cách để làm điều đó trong F # 3.0. – Daniel