Где хранятся интерфейсы?

ShmelVG

, сам интерфейс и его описание хранятся в метадате, при его использовании CLR загружает это описание в особую область кучи (High Frequency Heap или Loader Heap), там же где и хранятся объекты типов, их таблицы методов, и соответственно статические классы/члены объектов. Объект интерфейса не может быть сконструирован по умолчанию. Поэтому в обычной куче нечего хранить.

Объекты реализующие интерфейс, хранятся на куче или на стеке, в зависимости от их типа. Но вызов интерфейсного метода возможен только через объект в куче, из-за наличия указателя (Object type pointer) на объект типа упомянутый выше в объекте на куче, и его отсутствия у объектов Value Types на стеке.

Надеюсь, хоть что-нибудь понятно я изложил