在C#的类属性里我们获取当前的属性名和类的相关信息,直接上代码如下:
static public string StreetName
{
get { return _streetName; }
set
{
if (value.Length > 30)
{
var method = MethodBase.GetCurrentMethod();
var property = method.DeclaringType.GetProperties(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)
.Where(pr => pr.GetGetMethod(true) == method || pr.GetSetMethod(true) == method).SingleOrDefault();
throw new CrackerJackException(property.Name + " of " + property.DeclaringType
+ " must be less than 20 characters.", new CrackerJackException().GetCompleteException(1, ErrorCode.InvalidDataField));
}
else
{
_streetName = value;
}
}
}