也許我得到自定義的概念屬性錯的,但我想這應該是這將是可能的:自定義執行財產屬性
我有一個字符串屬性的類。我有多個派生類與性質基本上得到了基類的屬性的子字符串
class BaseClass {
public string MyString { get; set;}
}
class FooClass : BaseClass {
public string Part1 { get { return MyString.SubString(0,3); }}
public string Part2 { get { return MyString.SubString(3,5); }}
}
class BarClass : BaseClass {
public string PartA { get { return MyString.SubString(0,4); }}
public string PartB { get { return MyString.SubString(4,1); }}
}
他們也有一個制定者,而真正的代碼更加複雜一點點......但你得到了圖片。
我想不必實現這一千次,所以我想使用自定義屬性。所以,我可以這樣做:
class FooClass : BaseClass {
[DataPart(0, Length = 3)]
public string Part1 { get; set; }
[DataPart(3, Length = 5)]
public string Part2 { get; set; }
}
class BarClass : BaseClass {
[DataPart(4, Length = 4)]
public string PartA { get; set; }
[DataPart(4)]
public string PartB { get; set; }
}
我已經自定義屬性吧:
[global::System.AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
sealed class DataPartAttribute : Attribute
{
public ushort Position { get; private set; }
public ushort Length { get; set; }
public DataByteAttribute(ushort position)
{
Position = position;
}
}
現在怎麼辦?