3
假設是這樣的:獲取自定義屬性形式lambda表達式
public static IQueryable<T> Find<T>(IQueryable<T> query, string value, params Expression<Func<T, object>>[] subSelectors) where T : class
{
foreach (var include in subSelectors)
{
var entityType = include.Body.Type.GetGenericArguments().First();
var properties = from p in entityType.GetProperties()
where Attribute.IsDefined(p, typeof(FilterAttribute))
select p;
}
}
此方法從另一個程序集調用,這個方法爲例調用:
var container = new List<MyClass>();
var q = (from m in container
select m).AsQueryable();
SimpleFilter.Find(q, "something", m => m.Navigation);
對於T參數是確定我看到我的自定義屬性。但形成lambda表達式我不能看到我的自定義屬性。
btw ...``entityType`在這裏更簡單,就像`typeof(T)`,不是嗎? – 2011-12-15 21:33:47