2
我想循環使用反射的模型屬性,然後將它們傳遞到期望我的屬性爲en表達式的方法中。將屬性從反射傳遞到表達式
例如,假設這種模式:
public class UserModel
{
public string Name { get; set; }
}
這驗證器類:
public class UserValidator : ValidatorBase<UserModel>
{
public UserValidator()
{
this.RuleFor(m => m.Username);
}
}
而且我ValidatorBase類:
public class ValidatorBase<T>
{
public ValidatorBase()
{
foreach (PropertyInfo property in
this.GetType().BaseType
.GetGenericArguments()[0]
.GetProperties(BindingFlags.Public | BindingFlags.Insance))
{
this.RuleFor(m => property); //This line is incorrect!!
}
}
public void RuleFor<TProperty>(Expression<Func<T, TProperty>> expression)
{
//Do some stuff here
}
}
的問題是與ValidatorBase()
構造 - - 鑑於我有我需要的房產PropertyInfo
,wha t我應該傳入RuleFor
方法中的expression
參數,這樣它就像UserValidator()
構造函數中的行一樣工作?
或者,除了PropertyInfo
之外,我還應該使用其他方法來使其工作嗎?
+1非常好的技巧與'動態':) – dasblinkenlight
完美。謝謝。 :) –