Боюсь, это не то, что делает атрибут [DefaultValue]
. Что он делает, он позволяет конструктору Visual Studio (в частности, сетке «Свойства») определять , что показывать по умолчанию и, следовательно, как узнать, как отображать значение как полужирный когда он отличается от значения по умолчанию .
В вашем коде есть что-то, что содержит значение "KHT" в качестве значения по умолчанию. В этой публикации в моем блоге за 2008 год есть .
.
Следующий код является довольно элементарным, и я не смог проверить его компиляцию, но он должен дать вам некоторое представление о том, как вы можете обработать «форсирование» значения ваших DefaultValueAttribute
s в ViewState
:
private string GetDefaultAttributeValueForProperty(string propertyName)
{
var attributesForProperty = (from prop in typeof(KHTLabel).GetProperties()
where prop.Name == propertyName
select System.Attribute.GetCustomAttributes(prop)).First();
var defaultValueAttribute = (from attr in attributesForProperty
where attr.GetType() == typeof(DefaultValueAttribute)
select ((DefaultValueAttribute)attr).Value).FirstOrDefault();
return Convert.ToString(defaultValueAttribute);
}
public KHTLabel()
{
ViewState["Key"] = GetDefaultAttributeValueForProperty("Key");
}