Нет, у вас не может быть динамического базового класса. Помимо всего прочего, система все еще должна знать, сколько места выделяется при создании нового экземпляра вашего класса.
Не могли бы вы объяснить, чего вы пытаетесь достичь? Вполне возможно, что dynamic
поможет без такого поведения.
РЕДАКТИРОВАТЬ: Хорошо, увидев ваше редактирование - я не думаю, что вы можете делать то, что вы хотите, но если вы просто используете
dynamic dmc = this;
dmc.MyProperty = value;
или
((dynamic)this).MyProperty = value;
Обойти это должно быть хорошо. Другими словами: ссылка this
всегда статически типизирована, но вы можете иметь выражение со значением , равным this
, но с динамическим типом.
Это не должно быть слишком обременительно, если вы не выполняете lot динамической работы - в этом случае я бы рекомендовал вместо этого использовать полностью динамический язык. Если вы реализуете большую часть своего динамического кода в IronPython / IronRuby, вы все равно можете легко интегрировать его с вашим кодом C #.