首先让我说我不知道这特别需要自定义属性,但DisplayFormatAttribute
最接近我正在寻找的意图。
我想要什么
我希望能够为类的属性指定字符串格式,如下所示:
public class TestAttribute
{
[CustomDisplayFormatAttribute(DataFormatString = "{0}")]
public int MyInt { get; set; }
[CustomDisplayFormatAttribute(DataFormatString = "{0:0.000}")]
public float MyFloat { get; set; }
[CustomDisplayFormatAttribute(DataFormatString = "{0:0.0}")]
public float MyFloat2 { get; set; }
[CustomDisplayFormatAttribute(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime MyDateTime { get; set; }
}
...并且能够像这样使用它:
TestAttribute t = new TestAttribute()
{
MyDateTime = DateTime.Now,
MyFloat = 1.2345678f,
MyFloat2 = 1.2345678f,
MyInt = 5
};
Console.WriteLine(t.MyDateTime.ToFormattedString());
Console.WriteLine(t.MyFloat.ToFormattedString());
Console.WriteLine(t.MyFloat2.ToFormattedString());
Console.WriteLine(t.MyInt.ToFormattedString());
到目前为止我做了什么
我已成功创建自定义属性CustomDisplayFormatAttribute
并将其应用于我的元素,但是在不了解我的TestAttribute
类的情况下我无法获取该属性。
我的第一个想法是使用扩展方法来处理它,因此是ToFormattedString()
函数。
话虽如此,理想情况下我将能够调用类似的函数ToFormattedString()
并让它处理查找显示格式并将值应用于它。
我的问题
- 这可能使用 C#
- 我怎样才能获得这个(或类似的)功能。