1
創建表達我有一個這樣的方法簽名:從反射型
IPostprocessComposer<T> Without<TProperty>(Expression<Func<T, TProperty>> propertyPicker)
實例:
AutoFixture.Build<Request>()
.Without(p => p.ID)
.Create();
我想創建一個更靈活的解決方案並始終忽略從類型幾個屬性(在這種情況下「請求」)
我的(不工作)解決方案:
IPostprocessComposer<T> row = fixture.Build<T>();
var primitivePropertiesToIgnore = typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public)
.Where(p => p.Name.ToLowerInvariant().StartsWith("id") || p.Name.ToLowerInvariant().EndsWith("id"));
foreach (var primitiveProperty in primitivePropertiesToIgnore)
{
var x = Expression.Parameter(typeof(T));
var expr = Expression.Lambda(Expression.PropertyOrField(x, primitiveProperty.Name), x);
// This line is working, but of course I need "int" to be a generic type here... how can i achieve this?
row = row.Without((Expression<Func<T, int>>)expr);
}
問題: 我想表達必須以不同以某種方式傳遞給沒有方法,以工作?但是如何?
YESSS .. THX :)) – David