也许我得到自定义的概念属性错的,但我想这应该是这将是可能的:自定义执行财产属性
我有一个字符串属性的类。我有多个派生类与性质基本上得到了基类的属性的子字符串
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;
}
}
现在怎么办?