Что делает атрибут С# CoClass?

В библиотеке сторонних разработчиков, которую мы используем, я нашел код, похожий на следующий.

[CoClass(typeof(BlahClass))]
public interface Blah : IBlah
{
}

Что это делает? Документация msdn не освещала предмет, достаточный для меня.

Ответ 1

Он объявляет, что интерфейс Blah предназначен для реализации определенным классом. Это означает, что вы можете удобно сказать new Blah, и среда выполнения будет знать, какой объект создать - что-то, что обычно невозможно с интерфейсом.

Если вы посмотрите на сгенерированное объявление для BlahClass, у него предположительно будет связанный с ним Guid, который может быть использован для создания экземпляра COM-объекта.