C# 创建属性别名?

C# 创建属性别名?,c#,custom-attributes,C#,Custom Attributes,我正试图在我正在使用的框架和我的应用程序代码之间创建一个通用层,但由于框架需要用属性来装饰我的类,我被阻止了 有没有一种方法能够以某种方式将属性映射到其他属性 例如: 类A用属性B修饰 在运行时,将属性B映射到属性A 在应用程序的整个生命周期中,类A被看作是由属性A修饰的。您试图做的事情听起来像是糟糕的设计。属性不是运行时类型,它们实际上只是类型元数据。即使某些属性允许您在运行时更改其参数,也不会更改应用的属性 您将在internet上找到建议使用Reflection.Emit的解决方案。请注意

我正试图在我正在使用的框架和我的应用程序代码之间创建一个通用层,但由于框架需要用属性来装饰我的类,我被阻止了

有没有一种方法能够以某种方式将属性映射到其他属性

例如: 类A用属性B修饰 在运行时,将属性B映射到属性A
在应用程序的整个生命周期中,类A被看作是由属性A修饰的。

您试图做的事情听起来像是糟糕的设计。属性不是运行时类型,它们实际上只是类型元数据。即使某些属性允许您在运行时更改其参数,也不会更改应用的属性

您将在internet上找到建议使用
Reflection.Emit
的解决方案。请注意,这是一个滑坡,将导致代码高度不可维护


我个人的建议是创建您自己的
B类
,该类既有
属性A
也有
属性B
,然后使用内部逻辑桥接您想要桥接的任何内容。

如果不发布所有相关代码,很难准确确定您正在做什么或试图做什么。.类是部分的吗?也许吧,但我很确定这是一部经典之作。它是什么框架?这可能提供了一些您不知道的其他选项。@PaulAbbott这会有什么帮助?您将无法映射属性,但可以添加属性。所以类A可以通过属性A进行修饰(它也只有属性B)。是的,我坚持我的答案;)在DI框架和实际代码库之间添加中间层将导致难以读取(和维护)的体系结构。在这种情况下,您可能需要考虑替代的DI框架,或者查看您选择的DI框架是否允许您创建自定义的解析器。在不破坏建筑的情况下找到了我想要做的事情:)