我有一个具有两个不同属性的类,它们映射到相同的值:
class MyClass {
public int Number { get; set; }
public string NumberString {
get { return Number.ToString(); }
set { Number = int.Parse( value ); }
}
}
第二个属性(此处为NumberString
)只是使用不同的类型获取或设置第一个属性(此处为Number
)。
代码相当简单,但是当我拥有许多这些“伙伴”属性时会产生很多样板代码。
是否可以使用自定义属性进行转换? 我更愿意,如果我能写第二个属性:
[MapsTo(nameof(Number))]
public string NumberString { get; set; }
该属性应该能够为我做转换(可能基于我根据类型制定的一些规则)。
我的印象是,这可以通过PostSharp之类的东西完成,但是可以使用自定义属性吗?