我的问题听起来有点含糊,但让我解释一下。我有一个具有各种嵌套对象的复杂对象。主对象和某些嵌套对象的属性基本上是需要乘以100的值。
我正在寻找一种轻松识别这些属性并遍历它们进行乘法的方法。我最初以为一个简单的属性会起作用,在其中标记需要对它们执行此操作的属性,使用反射将其拉出并以这种方式循环。
但是,这变得有些复杂,其中一些条件是乘法的条件。他们中的某些人仅在将同一对象的另一个属性设置为“百分比”时才希望应用此乘法,因为这表明该值基本上被标记为百分比。
从到目前为止的尝试来看,我似乎无法将此另一个属性的值作为参数传递给属性。还有另一种方法吗?是通过属性还是其他?
这是我到目前为止尝试过的:
[AttributeUsage(AttributeTargets.Property)]
public class PercentageMultiplierAttribute : Attribute
{
public double DisplayMultiplier { get; set; }
public FieldType FType { get; set; }
}
我试图像这样应用属性:
public FieldType RecordedFieldType { get; set; } = FieldType.Percent;
[PercentageMultiplier(DisplayMultiplier = 100, FType = RecordedFieldType)]
public decimal MyValue { get; set; }
我试图传递属性RecordedFieldType的值,该属性设置为默认值,但这会导致错误:
非静态字段,方法或属性“ MyObject.RecordedFieldType”需要对象引用。
理论是,在我提供FType参数的情况下,我知道我需要做一些条件检查,但是当不提供它时,我就应用乘法器。