C# 是否可以使用属性重写方法?

C# 是否可以使用属性重写方法?,c#,reflection,methods,attributes,overriding,C#,Reflection,Methods,Attributes,Overriding,例如,是否可以使用“PetOwner”属性标记“Man”类,该属性使用创建“Dog”对象并调用“Man”基构造函数的内容重写构造函数 (并覆盖“人的”GoForWalk()方法以包括与狗的交互?) 我对反思还很陌生,对此很好奇,所以我想我不妨问问。 这是否涉及反射。以某种方式发射 我也看了一下这个问题,但我不认为它和我所问的完全相关(我也不完全理解它) 谢谢你的帮助!:) 编辑:看起来与我的目标类似是和否,这取决于你实际想要实现的目标的不同方面,所以更多的信息可能会有所帮助。由于您询问了反射,我

例如,是否可以使用“PetOwner”属性标记“Man”类,该属性使用创建“Dog”对象并调用“Man”基构造函数的内容重写构造函数

(并覆盖“人的”GoForWalk()方法以包括与狗的交互?)

我对反思还很陌生,对此很好奇,所以我想我不妨问问。 这是否涉及反射。以某种方式发射

我也看了一下这个问题,但我不认为它和我所问的完全相关(我也不完全理解它)

谢谢你的帮助!:)


编辑:看起来与我的目标类似是和否,这取决于你实际想要实现的目标的不同方面,所以更多的信息可能会有所帮助。由于您询问了反射,我得到的印象是,您有一些现有的库,希望通过自己的功能进行扩展,但您的解释并不清楚

net框架和C#允许以不同的方式重写代码/更改行为,但一切都取决于重写信息何时可用;在设计时(->典型的OO构造),在编译步骤(->面向方面的编程)之后,或在编译时(->反射/动态特性)

大多数情况下,反射是最后的手段,因为它本身就有性能问题需要处理(当然,如果除了使用反射读取属性外,还需要创建其他代码并执行它)。
也就是说,Reflection.Emit确实是覆盖可访问方法的一种方式(通过发出具有相同名称和签名的方法)。

您真正想做什么?这似乎是一个问题,我正在考虑使用它来创建一种镜像Mogre中winforms控件可视部分的方法,但我找到了另一种很好的方法。现在(正如我提到的),我只是想知道这是否可能。为什么要使用自定义属性而不是实现适当的对象模型?我并不是说属性不能辅助对象模型,但是使用IL重写器是一件沉重而难看的事情。再说一次,我不是在问某个特定问题的解决方案,我只是问这是否可行。这不是一个XY问题-如果一个例子有帮助的话,我已经提供了一个(Man和Dog类)谢谢Dirk:)你还引导我进入了另一个我想读的有趣主题-面向方面编程