public void ArrayLengthPropertyWorks() { var prop = LambdaExtract.Property((string[] x) => x.Length); Assert.NotNull(prop); Assert.Equal("Length", prop.Name); }
public void GetMemberWorks() { Assert.Equal(typeof(List <int>).Property("Count"), LambdaExtract.Member((List <int> l) => l.Count)); Assert.Equal(typeof(SomeClass1).Constructor(), LambdaExtract.Member(() => new SomeClass1())); Assert.Equal(typeof(string).Constructor(typeof(char), typeof(int)), LambdaExtract.Member(() => new string('c', 10))); Assert.Equal(typeof(SomeClass1).Property("P00"), LambdaExtract.Member((SomeClass1 tc) => tc.P00)); Assert.Equal(typeof(SomeClass1).Field("F2"), LambdaExtract.Member((SomeClass1 tc) => tc.F2)); Assert.Equal(typeof(object).Method("GetHashCode"), LambdaExtract.Member((SomeClass1 tc) => tc.GetHashCode())); Assert.Equal(typeof(Dictionary <string, double>).Property("Keys"), LambdaExtract.Member((Dictionary <string, double> d) => d.Keys)); Assert.Equal(typeof(SomeClass3).Property("Item"), LambdaExtract.Member((SomeClass3 d) => d[0])); }
private static MethodInfo Method(Expression <Func <DynamicEBuilder, DynamicEBuilder> > method) { return(LambdaExtract.Method(method)); }