Примечание. Это продолжение ответа на предыдущий вопрос .
Я украшаю установщик свойства Атрибутом с именем TestMaxStringLength
, который используется в методе, вызываемом из установщика для проверки.
Свойство в настоящее время выглядит так:
public string CompanyName
{
get
{
return this._CompanyName;
}
[TestMaxStringLength(50)]
set
{
this.ValidateProperty(value);
this._CompanyName = value;
}
}
Но я бы предпочел, чтобы это выглядело так:
[TestMaxStringLength(50)]
public string CompanyName
{
get
{
return this._CompanyName;
}
set
{
this.ValidateProperty(value);
this._CompanyName = value;
}
}
Код для ValidateProperty
, который отвечает за поиск атрибутов установщика:
private void ValidateProperty(string value)
{
var attributes =
new StackTrace()
.GetFrame(1)
.GetMethod()
.GetCustomAttributes(typeof(TestMaxStringLength), true);
//Use the attributes to check the length, throw an exception, etc.
}
Как изменить код ValidateProperty
для поиска атрибутов в свойстве вместо set set ?