假设我有一个对象用户,我无法编辑它的类。如何在对象中添加像username这样的简单属性?
目前我的实现是一个使用用户构建的简单包装器。然后,用户成为我的包装器对象的属性,包装器对象包含名为username的属性。但在我看来,这不是正确的做法。注意用户对象不是dependencyobject,而且我知道扩展方法存在,但我不相信扩展方法存在,但我需要存储用户名,所以它不能是静态的。
非常欢迎任何建议。
答案 0 :(得分:0)
从某种意义上说,您要求在C#中实现Mixin模式,这不能直接实现,如this question中所述。但是,可以创建扩展方法(即setter和getter)而不是类型T
的属性。由于无法添加字段,因此可以在Dictionary<User,T>
的后台保存要存储和返回的值;这种方法实际上不允许属性,但它提供的解决方案不需要User
为partial
或从User
派生。