不幸的是我仍在使用.NET 2.0。我以前沒有創建過自定義屬性。 我想創建一個CustomStringFormatAttribute
:。如何在.NET 2.0中實現自定義屬性?
如果一個類,說Customer.Name,具有:
MaxLength=30
ActualLength=10
我需要與空的空間填充它,直到它達到30
我還需要一個屬性,我可以格式日期像DisplayDataFormat
我創建的屬性內的財產的實際價值以下,但我如何獲得?
public class Customer
{
[CustomStringFormatAttribute(30)]
public string Name { get; set; }
//todo:customDateAttribute
public DateTime StartDate { get; set; }
}
[AttributeUsage(AttributeTargets.Property, Inherited = false, AllowMultiple = true)]
public sealed class CustomStringFormatAttribute : Attribute
{
private readonly int maxLength;
public CustomStringFormatAttribute(int maxLength)
{
MaxLength = maxLength;
}
public int MaxLength { get; private set; }
//?Should I override ToString
public override string ToString()
{
return Format();
}
private string Format()
{
//simplified version of my formatting for brevity
string source = "value from the property of the class.";//How do I get access to the actual value of the property within the attribute?
const char paddingChar = ' ';
return source.PadLeft(maxLength, paddingChar);
}
}
有什麼建議?
注:I」使用自動屬性簡潔。我在.NET 2.0中沒有這種奢侈。
這是不是很清楚你要完成什麼,但它是你使用不當的屬性可能。屬性與類型相關聯,而不與該類型的對象相關聯。如果你需要一個特定對象的自定義顯示格式,那麼你*有*使用普通屬性。 –