Я видел различные вопросы относительно того, можно ли создать mixins на С#, и они часто направляются в проект re-mix на codeplex. Однако я не знаю, нравится ли мне концепция "полного интерфейса". В идеале я бы расширил класс следующим образом:
[Taggable]
public class MyClass
{
....
}
Просто добавив интерфейс Taggable, я могу создавать объекты типа MyClass через какой-то объект factory. Возвращенный экземпляр будет иметь все члены, определенные в MyClass, а также все члены, предоставленные путем добавления атрибута tagging (например, коллекции тегов). Похоже, что это легко выполнимо с помощью С# 4.0 (динамическое ключевое слово). Проект re-mix использует С# 3.5. У кого-нибудь есть хорошие способы расширения объектов через С# 4.0 без изменения самих классов? Спасибо.