如何在不使用包装器的情况下向对象添加简单属性?

时间:2015-02-11 11:02:50

标签: c# object

假设我有一个对象用户,我无法编辑它的类。如何在对象中添加像username这样的简单属性?

目前我的实现是一个使用用户构建的简单包装器。然后,用户成为我的包装器对象的属性,包装器对象包含名为username的属性。但在我看来,这不是正确的做法。注意用户对象不是dependencyobject,而且我知道扩展方法存在,但我不相信扩展方法存在,但我需要存储用户名,所以它不能是静态的。

非常欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

从某种意义上说,您要求在C#中实现Mixin模式,这不能直接实现,如this question中所述。但是,可以创建扩展方法(即setter和getter)而不是类型T的属性。由于无法添加字段,因此可以在Dictionary<User,T>的后台保存要存储和返回的值;这种方法实际上不允许属性,但它提供的解决方案不需要Userpartial或从User派生。