0
調用靜態場法的靜態類我有這個規範靜態類:使用如何使用反射
public class Specification<T> : ISpecification<T>
{
private Func<T, bool> expression;
public Specification(Func<T, bool> expression)
{
if (expression == null)
throw new ArgumentNullException();
else
this.expression = expression;
}
public bool IsSatisfiedBy(T o)
{
return this.expression(o);
}
}
我怎麼能說TestSpec.IsSatisfiedBy(SOMETYPE):
public static class OperationSpecs
{
public static ISpecification<TestEntity> TestSpec = new Specification<TestEntity>(
o =>
{
return (o.Param1== 1 &&
o.Param2== 3
);
}
);
規範實施反思?我嘗試這樣做:
var specAttr = op.GetCustomAttribute<OperationSpecificationAttribute>();
var specType = specAttr.SpecificationType;
var specTypeMethodName = specAttr.SpecificationMethodName;
var specField = specType.GetField(specTypeMethodName, BindingFlags.Public | BindingFlags.Static);
if (specField != null)
{
var specFieldType = specField.FieldType;
var result2 = specField.GetValue(null).GetType().GetMethod("IsSatisfiedBy").Invoke(null, new object[] { entity });
}
我遇到錯誤時要調用調用非靜態方法需要一個目標......我需要布爾結果.. 感謝您的幫助!
只是一個題外話的話:我雙頭呆您的個人資料,看看你從來沒有獎勵或贊成票正確答案。爲了保持每個人的積極性,請將最佳答案投票表決,或者如果答案是正確答案,請勾選灰色勾號。 :) –