Я нашел решение для этого, эффективно подумав о том, что представляет отражение в UML и ООП.
Если вы мыслите строго ООП, вы не должны думать об объекте, составленном из свойств (полей) и методов, вместо этого вы должны представить его как объект, составленный (как и должно быть) другими объектами.
При этом гораздо проще представить методы и свойства как объекты (поэтому у нас будет объект UpdateMethod или объект LengthProperty) и yes , таким образом, у вас есть место, куда вы можете поместить C # атрибуты , или вы можете придать значение C # делегатам вместо указателей на функции.
Это изображение должно объяснить концепцию, которую трудно выразить только словами:
Очевидно, что UML нуждается в улучшении, потому что широко используемая функция (отражение) должна поддерживаться лучше, а не так, как я ее использовал (что не так приятно).