coolimdad
coolimdad
CC#
Created by coolimdad on 5/19/2024 in #help
✅ Finding all FieldInfo's of BackingFields of a type
I have following code snippet to find all FieldInfo's of a type t which are BackingFields of public properties of type double.
FieldInfo[] doubleFields = t
.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.Where(p => p.PropertyType == typeof(double))
.Select(p => t.GetField($"<{p.Name}>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance)!)
.Where(f => f is not null)
.ToArray();
FieldInfo[] doubleFields = t
.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.Where(p => p.PropertyType == typeof(double))
.Select(p => t.GetField($"<{p.Name}>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance)!)
.Where(f => f is not null)
.ToArray();
I was now wondering if the CompilerGeneratedAttribute is only applied to BackingFields or if there are other instances of fields having that attribute since I cannot currently think of any. If it is only applied to BackingFields, I could skip the step of getting all properties.
4 replies